CORE/tables/navigation.sql
2021-12-18 09:40:21 +01:00

42 lines
1.5 KiB
SQL

--DROP TABLE navigation PURGE;
CREATE TABLE navigation (
app_id NUMBER(4) CONSTRAINT nn_navigation_app_id NOT NULL,
page_id NUMBER(6) CONSTRAINT nn_navigation_page_id NOT NULL,
--
parent_id NUMBER(6),
order# NUMBER(4),
is_hidden VARCHAR2(1),
is_reset VARCHAR2(1),
--
updated_by VARCHAR2(30),
updated_at DATE,
--
CONSTRAINT pk_navigation
PRIMARY KEY (app_id, page_id),
--
CONSTRAINT fk_navigation_app_id
FOREIGN KEY (app_id)
REFERENCES apps (app_id),
--
CONSTRAINT fk_navigation_parent
FOREIGN KEY (app_id, parent_id)
REFERENCES navigation (app_id, page_id),
--
CONSTRAINT ch_navigation_is_hidden
CHECK (is_hidden = 'Y' OR is_hidden IS NULL),
--
CONSTRAINT ch_navigation_is_reset
CHECK (is_reset = 'Y' OR is_reset IS NULL)
)
STORAGE (BUFFER_POOL KEEP);
--
COMMENT ON TABLE navigation IS 'Navigation items';
--
COMMENT ON COLUMN navigation.app_id IS 'APEX application ID';
COMMENT ON COLUMN navigation.page_id IS 'APEX page ID';
COMMENT ON COLUMN navigation.parent_id IS 'Parent id for tree structure';
COMMENT ON COLUMN navigation.order# IS 'Order of siblings';
COMMENT ON COLUMN navigation.is_hidden IS 'Y = dont show in menu';
COMMENT ON COLUMN navigation.is_reset IS 'Y = reset all items not passed in url';