Exported tables
This commit is contained in:
parent
22422550a2
commit
5ba4c0299e
@ -1,22 +1,18 @@
|
||||
--DROP TABLE apps CASCADE CONSTRAINTS;
|
||||
CREATE TABLE apps (
|
||||
app_id NUMBER(4) CONSTRAINT nn_apps_app_id NOT NULL,
|
||||
--
|
||||
description_ VARCHAR2(1000),
|
||||
is_visible CHAR(1),
|
||||
--
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
--
|
||||
CONSTRAINT pk_apps
|
||||
PRIMARY KEY (app_id),
|
||||
app_id NUMBER(4,0) CONSTRAINT nn_apps_app_id NOT NULL,
|
||||
description_ VARCHAR2(1000),
|
||||
is_visible CHAR(1),
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
--
|
||||
CONSTRAINT ch_apps_is_visible
|
||||
CHECK (is_visible = 'Y' OR is_visible IS NULL)
|
||||
)
|
||||
STORAGE (BUFFER_POOL KEEP);
|
||||
CHECK (is_visible = 'Y' OR is_visible IS NULL),
|
||||
--
|
||||
CONSTRAINT pk_apps
|
||||
PRIMARY KEY (app_id)
|
||||
);
|
||||
--
|
||||
COMMENT ON TABLE apps IS '[CORE] List of apps';
|
||||
COMMENT ON TABLE apps IS '[CORE] List of apps';
|
||||
--
|
||||
COMMENT ON COLUMN apps.app_id IS 'APEX application ID';
|
||||
COMMENT ON COLUMN apps.description_ IS 'Description, until I know how to edit documentation_banner';
|
||||
|
||||
@ -1,30 +1,25 @@
|
||||
--DROP TABLE logs_events PURGE;
|
||||
--DROP TABLE events PURGE;
|
||||
CREATE TABLE events (
|
||||
app_id NUMBER(4) CONSTRAINT nn_events_app_id NOT NULL,
|
||||
event_id VARCHAR2(30) CONSTRAINT nn_events_event_id NOT NULL,
|
||||
app_id NUMBER(4,0) CONSTRAINT nn_events_app_id NOT NULL,
|
||||
event_id VARCHAR2(30) CONSTRAINT nn_events_event_id NOT NULL,
|
||||
event_name VARCHAR2(64),
|
||||
event_group VARCHAR2(64),
|
||||
description_ VARCHAR2(1000),
|
||||
is_active CHAR(1),
|
||||
updated_by VARCHAR2(30) DEFAULT NULL,
|
||||
updated_at DATE,
|
||||
--
|
||||
event_name VARCHAR2(64),
|
||||
event_group VARCHAR2(64),
|
||||
description_ VARCHAR2(1000),
|
||||
is_active CHAR(1),
|
||||
--
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
CONSTRAINT ch_events_is_active
|
||||
CHECK (is_active = 'Y' OR is_active IS NULL),
|
||||
--
|
||||
CONSTRAINT pk_events
|
||||
PRIMARY KEY (app_id, event_id),
|
||||
PRIMARY KEY (app_id, event_id)
|
||||
--
|
||||
CONSTRAINT fk_events_app_id
|
||||
FOREIGN KEY (app_id)
|
||||
REFERENCES apps (app_id),
|
||||
--
|
||||
CONSTRAINT ch_events_is_active
|
||||
CHECK (is_active = 'Y' OR is_active IS NULL)
|
||||
)
|
||||
STORAGE (BUFFER_POOL KEEP);
|
||||
REFERENCES apps (app_id)
|
||||
);
|
||||
--
|
||||
COMMENT ON TABLE events IS '[CORE] List of events interesting for business';
|
||||
COMMENT ON TABLE events IS '[CORE] List of events interesting for business';
|
||||
--
|
||||
COMMENT ON COLUMN events.app_id IS 'APEX application ID';
|
||||
COMMENT ON COLUMN events.event_id IS 'Event id';
|
||||
|
||||
@ -1,20 +1,16 @@
|
||||
--DROP TABLE log_events PURGE;
|
||||
CREATE TABLE log_events (
|
||||
log_id INTEGER CONSTRAINT nn_log_events_log_id NOT NULL,
|
||||
log_parent INTEGER,
|
||||
--
|
||||
app_id NUMBER(4) CONSTRAINT nn_log_events_app_id NOT NULL,
|
||||
page_id NUMBER(6) CONSTRAINT nn_log_events_page_id NOT NULL,
|
||||
user_id VARCHAR2(30) CONSTRAINT nn_log_events_user_id NOT NULL,
|
||||
session_id INTEGER CONSTRAINT nn_log_events_session_id NOT NULL,
|
||||
--
|
||||
event_id VARCHAR2(30) CONSTRAINT nn_log_events_event_id NOT NULL,
|
||||
event_value NUMBER,
|
||||
--
|
||||
created_at DATE CONSTRAINT nn_log_events_created_at NOT NULL,
|
||||
log_id INTEGER CONSTRAINT nn_log_events_log_id NOT NULL,
|
||||
log_parent INTEGER,
|
||||
app_id NUMBER(4,0) CONSTRAINT nn_log_events_app_id NOT NULL,
|
||||
page_id NUMBER(6,0) CONSTRAINT nn_log_events_page_id NOT NULL,
|
||||
user_id VARCHAR2(30) CONSTRAINT nn_log_events_user_id NOT NULL,
|
||||
session_id INTEGER CONSTRAINT nn_log_events_session_id NOT NULL,
|
||||
event_id VARCHAR2(30) CONSTRAINT nn_log_events_event_id NOT NULL,
|
||||
event_value NUMBER,
|
||||
created_at DATE CONSTRAINT nn_log_events_created_at NOT NULL,
|
||||
--
|
||||
CONSTRAINT pk_log_events
|
||||
PRIMARY KEY (log_id),
|
||||
PRIMARY KEY (log_id)
|
||||
--
|
||||
CONSTRAINT fk_log_events_event_id
|
||||
FOREIGN KEY (app_id, event_id)
|
||||
@ -22,20 +18,18 @@ CREATE TABLE log_events (
|
||||
--
|
||||
CONSTRAINT fk_log_events_users
|
||||
FOREIGN KEY (user_id)
|
||||
REFERENCES users (user_id)
|
||||
REFERENCES users (user_id) DISABLE
|
||||
);
|
||||
--
|
||||
ALTER TABLE log_events DISABLE CONSTRAINT fk_log_events_users;
|
||||
COMMENT ON TABLE log_events IS '[CORE] List of business events';
|
||||
--
|
||||
COMMENT ON TABLE log_events IS '[CORE] List of business events';
|
||||
--
|
||||
COMMENT ON COLUMN log_events.log_id IS 'Log ID';
|
||||
COMMENT ON COLUMN log_events.log_parent IS 'Referenced log_id from LOGS table';
|
||||
COMMENT ON COLUMN log_events.app_id IS 'App';
|
||||
COMMENT ON COLUMN log_events.page_id IS 'Page';
|
||||
COMMENT ON COLUMN log_events.user_id IS 'User';
|
||||
COMMENT ON COLUMN log_events.session_id IS 'Session id';
|
||||
COMMENT ON COLUMN log_events.event_id IS 'Event code from EVENTS table';
|
||||
COMMENT ON COLUMN log_events.event_value IS 'Optional business value';
|
||||
COMMENT ON COLUMN log_events.created_at IS 'Datetime of the event';
|
||||
COMMENT ON COLUMN log_events.log_id IS 'Log ID';
|
||||
COMMENT ON COLUMN log_events.log_parent IS 'Referenced log_id from LOGS table';
|
||||
COMMENT ON COLUMN log_events.app_id IS 'App';
|
||||
COMMENT ON COLUMN log_events.page_id IS 'Page';
|
||||
COMMENT ON COLUMN log_events.user_id IS 'User';
|
||||
COMMENT ON COLUMN log_events.session_id IS 'Session id';
|
||||
COMMENT ON COLUMN log_events.event_id IS 'Event code from EVENTS table';
|
||||
COMMENT ON COLUMN log_events.event_value IS 'Optional business value';
|
||||
COMMENT ON COLUMN log_events.created_at IS 'Datetime of the event';
|
||||
|
||||
|
||||
@ -1,55 +1,34 @@
|
||||
/*
|
||||
UPDATE sessions SET log_id = NULL;
|
||||
UPDATE uploaded_file_sheets SET result_log_id = NULL;
|
||||
--
|
||||
DROP TABLE log_events PURGE;
|
||||
DROP TABLE logs_blacklist PURGE;
|
||||
DROP TABLE logs PURGE;
|
||||
--
|
||||
SELECT * FROM logs ORDER BY 1 DESC;
|
||||
*/
|
||||
CREATE TABLE logs (
|
||||
log_id INTEGER CONSTRAINT nn_logs_log_id NOT NULL, -- NUMBER GENERATED BY DEFAULT AS IDENTITY NOT NULL
|
||||
log_parent INTEGER,
|
||||
--
|
||||
app_id NUMBER(4) CONSTRAINT nn_logs_app_id NOT NULL,
|
||||
page_id NUMBER(6),
|
||||
user_id VARCHAR2(30),
|
||||
flag CHAR(1) CONSTRAINT nn_logs_flag NOT NULL,
|
||||
--
|
||||
action_name VARCHAR2(64),
|
||||
module_name VARCHAR2(64), -- 48 chars, DBMS_APPLICATION_INFO limit
|
||||
module_line NUMBER(8),
|
||||
module_timer VARCHAR2(12), -- 00:00:00.000 - INTERVAL DAY(1) TO SECOND(3),
|
||||
arguments VARCHAR2(2000),
|
||||
payload VARCHAR2(4000),
|
||||
--
|
||||
session_id INTEGER,
|
||||
created_at TIMESTAMP CONSTRAINT nn_logs_created_at NOT NULL,
|
||||
log_id INTEGER CONSTRAINT nn_logs_log_id NOT NULL,
|
||||
log_parent INTEGER,
|
||||
app_id NUMBER(4,0) CONSTRAINT nn_logs_app_id NOT NULL,
|
||||
page_id NUMBER(6,0),
|
||||
user_id VARCHAR2(30),
|
||||
flag CHAR(1) CONSTRAINT nn_logs_flag NOT NULL,
|
||||
action_name VARCHAR2(32),
|
||||
module_name VARCHAR2(48),
|
||||
module_line NUMBER(8,0),
|
||||
module_timer VARCHAR2(12),
|
||||
arguments VARCHAR2(2000),
|
||||
payload VARCHAR2(4000),
|
||||
session_id INTEGER,
|
||||
created_at TIMESTAMP(6) CONSTRAINT nn_logs_created_at NOT NULL,
|
||||
--
|
||||
CONSTRAINT pk_logs
|
||||
PRIMARY KEY (log_id)
|
||||
--
|
||||
-- NO MORE CONSTRAINTS TO KEEP THIS AS FAST AS POSSIBLE
|
||||
--
|
||||
)
|
||||
PARTITION BY RANGE (created_at)
|
||||
INTERVAL (NUMTODSINTERVAL(1, 'DAY')) (
|
||||
PARTITION P00 VALUES LESS THAN (TIMESTAMP '2021-01-01 00:00:00')
|
||||
/*
|
||||
--today VARCHAR2(10) CONSTRAINT nn_logs_today NOT NULL, -- virtual column?
|
||||
PARTITION BY LIST (today, app_id) AUTOMATIC (
|
||||
PARTITION "P_20210101_0" VALUES (('2021-01-01', 0)) SEGMENT CREATION IMMEDIATE
|
||||
*/
|
||||
PARTITION BY RANGE (created_at) INTERVAL (NUMTODSINTERVAL(1, 'DAY'))
|
||||
(
|
||||
PARTITION "SYS_P3208" VALUES LESS THAN (TIMESTAMP '2022-06-28 00:00:00')
|
||||
);
|
||||
--
|
||||
COMMENT ON TABLE logs IS '[CORE] Various logs raised in application; daily partitions';
|
||||
COMMENT ON TABLE logs IS '[CORE] Various logs raised in application; daily partitions';
|
||||
--
|
||||
COMMENT ON COLUMN logs.log_id IS 'Log ID generated from LOG_ID sequence';
|
||||
COMMENT ON COLUMN logs.log_parent IS 'Parent log record; dont use FK to avoid deadlocks';
|
||||
COMMENT ON COLUMN logs.app_id IS 'APEX Application ID';
|
||||
COMMENT ON COLUMN logs.user_id IS 'User ID';
|
||||
COMMENT ON COLUMN logs.page_id IS 'APEX Application PAGE ID';
|
||||
COMMENT ON COLUMN logs.user_id IS 'User ID';
|
||||
COMMENT ON COLUMN logs.flag IS 'Type of error listed in tree package specification; FK missing for performance reasons';
|
||||
COMMENT ON COLUMN logs.action_name IS 'Action name to distinguish position in module or use it as warning/error names';
|
||||
COMMENT ON COLUMN logs.module_name IS 'Module name (procedure or function name)';
|
||||
|
||||
@ -1,17 +1,15 @@
|
||||
--DROP TABLE logs_blacklist CASCADE CONSTRAINTS PURGE;
|
||||
CREATE TABLE logs_blacklist (
|
||||
app_id NUMBER(4), -- CONSTRAINT nn_logs_blacklist_app_id NOT NULL,
|
||||
flag CHAR(1),
|
||||
user_id VARCHAR2(30),
|
||||
page_id NUMBER(6),
|
||||
module_like VARCHAR2(30),
|
||||
action_like VARCHAR2(30),
|
||||
--
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
app_id NUMBER(4,0),
|
||||
flag CHAR(1),
|
||||
user_id VARCHAR2(30),
|
||||
page_id NUMBER(6,0),
|
||||
module_like VARCHAR2(30),
|
||||
action_like VARCHAR2(30),
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
--
|
||||
CONSTRAINT uq_logs_blacklist
|
||||
UNIQUE (app_id, user_id, page_id, flag, module_like, action_like),
|
||||
UNIQUE (app_id, user_id, page_id, flag, module_like, action_like)
|
||||
--
|
||||
CONSTRAINT fk_logs_blacklist_app_id
|
||||
FOREIGN KEY (app_id)
|
||||
@ -19,18 +17,15 @@ CREATE TABLE logs_blacklist (
|
||||
--
|
||||
CONSTRAINT fk_logs_blacklist_user_id
|
||||
FOREIGN KEY (user_id)
|
||||
REFERENCES users (user_id)
|
||||
)
|
||||
STORAGE (BUFFER_POOL KEEP);
|
||||
REFERENCES users (user_id) DISABLE
|
||||
);
|
||||
--
|
||||
ALTER TABLE logs_blacklist DISABLE CONSTRAINT fk_logs_blacklist_user_id;
|
||||
--
|
||||
COMMENT ON TABLE logs_blacklist IS '[CORE] Define what logs will or wont be tracked';
|
||||
COMMENT ON TABLE logs_blacklist IS '[CORE] Define what logs will or wont be tracked';
|
||||
--
|
||||
COMMENT ON COLUMN logs_blacklist.app_id IS 'App ID';
|
||||
COMMENT ON COLUMN logs_blacklist.flag IS 'Flag to differentiate logs, NULL = any flag';
|
||||
COMMENT ON COLUMN logs_blacklist.page_id IS 'APEX page ID, NULL = any page';
|
||||
COMMENT ON COLUMN logs_blacklist.user_id IS 'User ID, NULL = any user';
|
||||
COMMENT ON COLUMN logs_blacklist.page_id IS 'APEX page ID, NULL = any page';
|
||||
COMMENT ON COLUMN logs_blacklist.module_like IS 'Module name, NULL = any module';
|
||||
COMMENT ON COLUMN logs_blacklist.action_like IS 'Action name, NULL = any module';
|
||||
|
||||
|
||||
@ -1,29 +1,24 @@
|
||||
--DROP TABLE mail_queue PURGE;
|
||||
CREATE TABLE mail_queue (
|
||||
queue_id NUMBER(10) CONSTRAINT nn_mail_queue_queue_id NOT NULL,
|
||||
app_id NUMBER(4) CONSTRAINT nn_mail_queue_app_id NOT NULL,
|
||||
event_id VARCHAR2(30),
|
||||
role_id VARCHAR2(30),
|
||||
template_id VARCHAR2(30),
|
||||
schedule_id VARCHAR2(30),
|
||||
user_id VARCHAR2(30),
|
||||
lang_id VARCHAR2(5),
|
||||
--
|
||||
mail_recipient VARCHAR2(4000), -- mail headers
|
||||
mail_cc VARCHAR2(4000),
|
||||
mail_bcc VARCHAR2(4000),
|
||||
mail_sender VARCHAR2(256),
|
||||
mail_subject VARCHAR2(256),
|
||||
mail_body CLOB, -- mail body
|
||||
--
|
||||
-- @TODO: mail_attachments
|
||||
--
|
||||
created_by VARCHAR2(30),
|
||||
created_at DATE,
|
||||
sent_at DATE,
|
||||
queue_id NUMBER(10,0) CONSTRAINT nn_mail_queue_queue_id NOT NULL,
|
||||
app_id NUMBER(4,0) CONSTRAINT nn_mail_queue_app_id NOT NULL,
|
||||
event_id VARCHAR2(30),
|
||||
role_id VARCHAR2(30),
|
||||
template_id VARCHAR2(30),
|
||||
schedule_id VARCHAR2(30),
|
||||
user_id VARCHAR2(30),
|
||||
lang_id VARCHAR2(5),
|
||||
mail_recipient VARCHAR2(4000),
|
||||
mail_cc VARCHAR2(4000),
|
||||
mail_bcc VARCHAR2(4000),
|
||||
mail_sender VARCHAR2(256),
|
||||
mail_subject VARCHAR2(256),
|
||||
mail_body CLOB,
|
||||
created_by VARCHAR2(30),
|
||||
created_at DATE,
|
||||
sent_at DATE,
|
||||
--
|
||||
CONSTRAINT pk_mail_queue
|
||||
PRIMARY KEY (queue_id),
|
||||
PRIMARY KEY (queue_id)
|
||||
--
|
||||
CONSTRAINT fk_mail_queue_app_id
|
||||
FOREIGN KEY (app_id)
|
||||
@ -38,7 +33,7 @@ CREATE TABLE mail_queue (
|
||||
REFERENCES mail_subscriptions (app_id, event_id, role_id, schedule_id)
|
||||
);
|
||||
--
|
||||
COMMENT ON TABLE mail_queue IS '[CORE] Queue with e-mails to track what was sent and when';
|
||||
COMMENT ON TABLE mail_queue IS '[CORE] Queue with e-mails to track what was sent and when';
|
||||
--
|
||||
COMMENT ON COLUMN mail_queue.queue_id IS 'Unique ID from queue_id sequence';
|
||||
COMMENT ON COLUMN mail_queue.app_id IS 'APEX application ID';
|
||||
@ -48,14 +43,12 @@ COMMENT ON COLUMN mail_queue.template_id IS '';
|
||||
COMMENT ON COLUMN mail_queue.schedule_id IS 'Schedule id';
|
||||
COMMENT ON COLUMN mail_queue.user_id IS '';
|
||||
COMMENT ON COLUMN mail_queue.lang_id IS '';
|
||||
--
|
||||
COMMENT ON COLUMN mail_queue.mail_recipient IS '';
|
||||
COMMENT ON COLUMN mail_queue.mail_cc IS '';
|
||||
COMMENT ON COLUMN mail_queue.mail_bcc IS '';
|
||||
COMMENT ON COLUMN mail_queue.mail_sender IS '';
|
||||
COMMENT ON COLUMN mail_queue.mail_subject IS 'E-mail subject';
|
||||
COMMENT ON COLUMN mail_queue.mail_body IS 'E-mail body, can be generated by a process_function';
|
||||
--
|
||||
COMMENT ON COLUMN mail_queue.created_by IS 'User whi created the e-mail';
|
||||
COMMENT ON COLUMN mail_queue.created_at IS 'Time of adding e-mail to the queue';
|
||||
COMMENT ON COLUMN mail_queue.sent_at IS 'Time when e-mail was actually sent';
|
||||
|
||||
@ -1,32 +1,16 @@
|
||||
--DROP TABLE mail_subscriptions PURGE;
|
||||
--DROP TABLE mail_schedules PURGE;
|
||||
CREATE TABLE mail_schedules (
|
||||
app_id NUMBER(4) CONSTRAINT nn_mail_schedules_app_id NOT NULL,
|
||||
schedule_id VARCHAR2(30) CONSTRAINT nn_mail_schedules_schedule_id NOT NULL,
|
||||
schedule_group VARCHAR2(64),
|
||||
description_ VARCHAR2(256),
|
||||
--
|
||||
schedule_month VARCHAR2(128),
|
||||
schedule_day VARCHAR2(128),
|
||||
schedule_weekday VARCHAR2(128),
|
||||
schedule_hour VARCHAR2(128),
|
||||
schedule_minute VARCHAR2(128),
|
||||
schedule_interval VARCHAR2(128),
|
||||
--
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
--
|
||||
CONSTRAINT pk_mail_schedules
|
||||
PRIMARY KEY (app_id, schedule_id),
|
||||
--
|
||||
CONSTRAINT ch_mail_schedules_month
|
||||
CHECK (REGEXP_LIKE(schedule_month, '^(\d+,?\s*)|(\d+[-]\d+,?\s*)+|([A-Z]{3}\s*)+|([A-Z]{3}[-,][A-Z]{3},?\s*)+$') OR schedule_month IS NULL),
|
||||
--
|
||||
CONSTRAINT ch_mail_schedules_day
|
||||
CHECK (REGEXP_LIKE(schedule_day, '^(\d+,?\s*)|(\d+[-]\d+,?\s*)+$') OR schedule_day IS NULL),
|
||||
--
|
||||
CONSTRAINT ch_mail_schedules_weekday
|
||||
CHECK (REGEXP_LIKE(schedule_weekday, '^(\d+,?\s*)|(\d+[-]\d+,?\s*)+|([A-Z]{3},?\s*)+|([A-Z]{3}[-][A-Z]{3},?\s*)+$') OR schedule_weekday IS NULL),
|
||||
app_id NUMBER(4,0) CONSTRAINT nn_mail_schedules_app_id NOT NULL,
|
||||
schedule_id VARCHAR2(30) CONSTRAINT nn_mail_schedules_schedule_id NOT NULL,
|
||||
schedule_group VARCHAR2(64),
|
||||
description_ VARCHAR2(256),
|
||||
schedule_month VARCHAR2(128),
|
||||
schedule_day VARCHAR2(128),
|
||||
schedule_weekday VARCHAR2(128),
|
||||
schedule_hour VARCHAR2(128),
|
||||
schedule_minute VARCHAR2(128),
|
||||
schedule_interval VARCHAR2(128),
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
--
|
||||
CONSTRAINT ch_mail_schedules_hour
|
||||
CHECK (REGEXP_LIKE(schedule_hour, '^(\d+,?\s*)+|(\d+[-]\d,?\s*)+$') OR schedule_hour IS NULL),
|
||||
@ -37,19 +21,31 @@ CREATE TABLE mail_schedules (
|
||||
CONSTRAINT ch_mail_schedules_interval
|
||||
CHECK (REGEXP_LIKE(schedule_interval, '^(\d+)$') OR schedule_interval IS NULL),
|
||||
--
|
||||
CONSTRAINT pk_mail_schedules
|
||||
PRIMARY KEY (app_id, schedule_id)
|
||||
--
|
||||
CONSTRAINT ch_mail_schedules_min_or_int
|
||||
CHECK ((schedule_minute IS NULL AND schedule_interval IS NOT NULL) OR (schedule_minute IS NOT NULL AND schedule_interval IS NULL))
|
||||
CHECK ((schedule_minute IS NULL AND schedule_interval IS NOT NULL) OR (schedule_minute IS NOT NULL AND schedule_interval IS NULL)),
|
||||
--
|
||||
CONSTRAINT ch_mail_schedules_day
|
||||
CHECK (REGEXP_LIKE(schedule_day, '^(\d+,?\s*)|(\d+[-]\d+,?\s*)+$') OR schedule_day IS NULL),
|
||||
--
|
||||
CONSTRAINT ch_mail_schedules_weekday
|
||||
CHECK (REGEXP_LIKE(schedule_weekday, '^(\d+,?\s*)|(\d+[-]\d+,?\s*)+|([A-Z]{3},?\s*)+|([A-Z]{3}[-][A-Z]{3},?\s*)+$') OR schedule_weekday IS NULL),
|
||||
--
|
||||
CONSTRAINT ch_mail_schedules_month
|
||||
CHECK (REGEXP_LIKE(schedule_month, '^(\d+,?\s*)|(\d+[-]\d+,?\s*)+|([A-Z]{3}\s*)+|([A-Z]{3}[-,][A-Z]{3},?\s*)+$') OR schedule_month IS NULL)
|
||||
);
|
||||
--
|
||||
COMMENT ON TABLE mail_schedules IS '[CORE] mail_schedules...';
|
||||
COMMENT ON TABLE mail_schedules IS '[CORE] mail_schedules...';
|
||||
--
|
||||
COMMENT ON COLUMN mail_schedules.app_id IS 'APEX application ID';
|
||||
COMMENT ON COLUMN mail_schedules.schedule_id IS 'Schedule id';
|
||||
COMMENT ON COLUMN mail_schedules.schedule_group IS 'Group for better visibility';
|
||||
COMMENT ON COLUMN mail_schedules.description_ IS 'Description';
|
||||
COMMENT ON COLUMN mail_schedules.schedule_month IS 'Send at specific month, 1..12 for months, separate values with comma';
|
||||
COMMENT ON COLUMN mail_schedules.schedule_weekday IS 'Send at specific day in a week, 1..7 (MON..SUN), 1-5 possible';
|
||||
COMMENT ON COLUMN mail_schedules.schedule_day IS 'Send at specific day of the month, 1..31';
|
||||
COMMENT ON COLUMN mail_schedules.schedule_weekday IS 'Send at specific day in a week, 1..7 (MON..SUN), 1-5 possible';
|
||||
COMMENT ON COLUMN mail_schedules.schedule_hour IS 'Send at specific hour, 00..23, 8-17 is possible';
|
||||
COMMENT ON COLUMN mail_schedules.schedule_minute IS 'Send at specific minute in an hour, 00..59';
|
||||
COMMENT ON COLUMN mail_schedules.schedule_interval IS 'Send every 1..30 minutes, schedule_minute is ignored';
|
||||
|
||||
@ -1,21 +1,21 @@
|
||||
--DROP TABLE mail_subscriptions PURGE;
|
||||
CREATE TABLE mail_subscriptions (
|
||||
app_id NUMBER(4) CONSTRAINT nn_mail_subscriptions_app_id NOT NULL,
|
||||
event_id VARCHAR2(30) CONSTRAINT nn_mail_subscriptions_event_id NOT NULL,
|
||||
role_id VARCHAR2(30) CONSTRAINT nn_mail_subscriptions_role_id NOT NULL,
|
||||
schedule_id VARCHAR2(30) CONSTRAINT nn_mail_subscriptions_schedule_id NOT NULL,
|
||||
template_id VARCHAR2(30) CONSTRAINT nn_mail_subscriptions_template_id NOT NULL,
|
||||
eval_function VARCHAR2(64), -- to evaluate on each role user if to send or not
|
||||
app_id NUMBER(4,0) CONSTRAINT nn_mail_subscriptions_app_id NOT NULL,
|
||||
event_id VARCHAR2(30) CONSTRAINT nn_mail_subscriptions_event_id NOT NULL,
|
||||
role_id VARCHAR2(30) CONSTRAINT nn_mail_subscriptions_role_id NOT NULL,
|
||||
schedule_id VARCHAR2(30) CONSTRAINT nn_mail_subscriptions_schedule_id NOT NULL,
|
||||
template_id VARCHAR2(30) CONSTRAINT nn_mail_subscriptions_template_id NOT NULL,
|
||||
eval_function VARCHAR2(64),
|
||||
is_active CHAR(1),
|
||||
processed_log_id NUMBER,
|
||||
processed_at DATE,
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
--
|
||||
is_active CHAR(1),
|
||||
processed_log_id NUMBER,
|
||||
processed_at DATE,
|
||||
--
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
CONSTRAINT ch_mail_subscriptions_is_active
|
||||
CHECK (is_active = 'Y' OR is_active IS NULL),
|
||||
--
|
||||
CONSTRAINT pk_mail_subscriptions
|
||||
PRIMARY KEY (app_id, event_id, role_id, schedule_id),
|
||||
PRIMARY KEY (app_id, event_id, role_id, schedule_id)
|
||||
--
|
||||
CONSTRAINT fk_mail_subscriptions_event_id
|
||||
FOREIGN KEY (app_id, event_id)
|
||||
@ -27,17 +27,10 @@ CREATE TABLE mail_subscriptions (
|
||||
--
|
||||
CONSTRAINT fk_mail_subscriptions_schedule_id
|
||||
FOREIGN KEY (app_id, schedule_id)
|
||||
REFERENCES mail_schedules (app_id, schedule_id),
|
||||
--
|
||||
--CONSTRAINT fk_mail_subscriptions_template_id
|
||||
-- FOREIGN KEY (app_id, template_id)
|
||||
-- REFERENCES mail_templates (app_id, template_id), -- we dont know the language
|
||||
--
|
||||
CONSTRAINT ch_mail_subscriptions_is_active
|
||||
CHECK (is_active = 'Y' OR is_active IS NULL)
|
||||
REFERENCES mail_schedules (app_id, schedule_id)
|
||||
);
|
||||
--
|
||||
COMMENT ON TABLE mail_subscriptions IS '[CORE] Subscriptions to events based on user roles';
|
||||
COMMENT ON TABLE mail_subscriptions IS '[CORE] Subscriptions to events based on user roles';
|
||||
--
|
||||
COMMENT ON COLUMN mail_subscriptions.app_id IS 'APEX application ID';
|
||||
COMMENT ON COLUMN mail_subscriptions.event_id IS 'Event id';
|
||||
|
||||
@ -1,23 +1,20 @@
|
||||
--DROP TABLE mail_templates PURGE;
|
||||
CREATE TABLE mail_templates (
|
||||
app_id NUMBER(4) CONSTRAINT nn_mail_templates_app_id NOT NULL,
|
||||
template_id VARCHAR2(30) CONSTRAINT nn_mail_templates_template_id NOT NULL,
|
||||
lang_id VARCHAR2(5) CONSTRAINT nn_mail_templates_lang_id NOT NULL,
|
||||
template_group VARCHAR2(64),
|
||||
description_ VARCHAR2(256),
|
||||
process_function VARCHAR2(64), -- to generate specific content
|
||||
--
|
||||
mail_subject VARCHAR2(256),
|
||||
mail_body CLOB,
|
||||
--
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
app_id NUMBER(4,0) CONSTRAINT nn_mail_templates_app_id NOT NULL,
|
||||
template_id VARCHAR2(30) CONSTRAINT nn_mail_templates_template_id NOT NULL,
|
||||
lang_id VARCHAR2(5) CONSTRAINT nn_mail_templates_lang_id NOT NULL,
|
||||
template_group VARCHAR2(64),
|
||||
description_ VARCHAR2(256),
|
||||
process_function VARCHAR2(64),
|
||||
mail_subject VARCHAR2(256),
|
||||
mail_body CLOB,
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
--
|
||||
CONSTRAINT pk_mail_templates
|
||||
PRIMARY KEY (app_id, template_id, lang_id)
|
||||
);
|
||||
--
|
||||
COMMENT ON TABLE mail_templates IS '[CORE] E-mail templates';
|
||||
COMMENT ON TABLE mail_templates IS '[CORE] E-mail templates';
|
||||
--
|
||||
COMMENT ON COLUMN mail_templates.app_id IS 'APEX application ID';
|
||||
COMMENT ON COLUMN mail_templates.template_id IS 'Template id';
|
||||
|
||||
@ -1,27 +1,13 @@
|
||||
--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 CHAR(1),
|
||||
is_reset CHAR(1),
|
||||
is_shared CHAR(1), -- only for CORE app
|
||||
--
|
||||
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),
|
||||
app_id NUMBER(4,0) CONSTRAINT nn_navigation_app_id NOT NULL,
|
||||
page_id NUMBER(6,0) CONSTRAINT nn_navigation_page_id NOT NULL,
|
||||
parent_id NUMBER(6,0),
|
||||
order# NUMBER(4,0),
|
||||
is_hidden CHAR(1),
|
||||
is_reset CHAR(1),
|
||||
is_shared CHAR(1),
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
--
|
||||
CONSTRAINT ch_navigation_is_hidden
|
||||
CHECK (is_hidden = 'Y' OR is_hidden IS NULL),
|
||||
@ -29,12 +15,22 @@ CREATE TABLE navigation (
|
||||
CONSTRAINT ch_navigation_is_reset
|
||||
CHECK (is_reset = 'Y' OR is_reset IS NULL),
|
||||
--
|
||||
CONSTRAINT pk_navigation
|
||||
PRIMARY KEY (app_id, page_id)
|
||||
--
|
||||
CONSTRAINT ch_navigation_is_shared
|
||||
CHECK (is_shared = 'Y' OR is_shared IS NULL)
|
||||
)
|
||||
STORAGE (BUFFER_POOL KEEP);
|
||||
CHECK (is_shared = 'Y' OR is_shared IS NULL),
|
||||
--
|
||||
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)
|
||||
);
|
||||
--
|
||||
COMMENT ON TABLE navigation IS '[CORE] Navigation items';
|
||||
COMMENT ON TABLE navigation IS '[CORE] Navigation items';
|
||||
--
|
||||
COMMENT ON COLUMN navigation.app_id IS 'APEX application ID';
|
||||
COMMENT ON COLUMN navigation.page_id IS 'APEX page ID';
|
||||
|
||||
@ -1,15 +1,14 @@
|
||||
--DROP TABLE obj_views_source;
|
||||
CREATE TABLE obj_views_source (
|
||||
owner VARCHAR2(30) CONSTRAINT nn_obj_views_source_owner NOT NULL,
|
||||
name VARCHAR2(30) CONSTRAINT nn_obj_views_source_name NOT NULL,
|
||||
line NUMBER(10) CONSTRAINT nn_obj_views_source_line NOT NULL,
|
||||
text VARCHAR2(2000),
|
||||
owner VARCHAR2(30) CONSTRAINT nn_obj_views_source_owner NOT NULL,
|
||||
name VARCHAR2(30) CONSTRAINT nn_obj_views_source_name NOT NULL,
|
||||
line NUMBER(10,0) CONSTRAINT nn_obj_views_source_line NOT NULL,
|
||||
text VARCHAR2(2000),
|
||||
--
|
||||
CONSTRAINT pk_obj_views_source
|
||||
PRIMARY KEY (owner, name, line)
|
||||
);
|
||||
--
|
||||
COMMENT ON TABLE obj_views_source IS '[CORE] User views source converted to lines';
|
||||
COMMENT ON TABLE obj_views_source IS '[CORE] User views source converted to lines';
|
||||
--
|
||||
COMMENT ON COLUMN obj_views_source.owner IS 'View owner';
|
||||
COMMENT ON COLUMN obj_views_source.name IS 'View name';
|
||||
|
||||
@ -1,36 +1,32 @@
|
||||
--DROP TABLE roles PURGE;
|
||||
CREATE TABLE roles (
|
||||
app_id NUMBER(4) CONSTRAINT nn_roles_app_id NOT NULL,
|
||||
role_id VARCHAR2(30) CONSTRAINT nn_roles_role_id NOT NULL,
|
||||
role_name VARCHAR2(64),
|
||||
role_group VARCHAR2(64),
|
||||
app_id NUMBER(4,0) CONSTRAINT nn_roles_app_id NOT NULL,
|
||||
role_id VARCHAR2(30) CONSTRAINT nn_roles_role_id NOT NULL,
|
||||
role_name VARCHAR2(64),
|
||||
role_group VARCHAR2(64),
|
||||
description_ VARCHAR2(1000),
|
||||
is_active CHAR(1),
|
||||
order# NUMBER(4,0),
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
--
|
||||
description_ VARCHAR2(1000),
|
||||
is_active CHAR(1),
|
||||
order# NUMBER(4),
|
||||
--
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
CONSTRAINT ch_roles_is_active
|
||||
CHECK (is_active = 'Y' OR is_active IS NULL),
|
||||
--
|
||||
CONSTRAINT pk_roles
|
||||
PRIMARY KEY (app_id, role_id),
|
||||
PRIMARY KEY (app_id, role_id)
|
||||
--
|
||||
CONSTRAINT fk_roles_app_id
|
||||
FOREIGN KEY (app_id)
|
||||
REFERENCES apps (app_id),
|
||||
--
|
||||
CONSTRAINT ch_roles_is_active
|
||||
CHECK (is_active = 'Y' OR is_active IS NULL)
|
||||
)
|
||||
STORAGE (BUFFER_POOL KEEP);
|
||||
REFERENCES apps (app_id)
|
||||
);
|
||||
--
|
||||
COMMENT ON TABLE roles IS '[CORE] List of roles';
|
||||
COMMENT ON TABLE roles IS '[CORE] List of roles';
|
||||
--
|
||||
COMMENT ON COLUMN roles.app_id IS 'Application ID';
|
||||
COMMENT ON COLUMN roles.role_id IS 'Role ID';
|
||||
COMMENT ON COLUMN roles.role_name IS 'Role name';
|
||||
COMMENT ON COLUMN roles.role_group IS 'Role group just for grouping set in APEX';
|
||||
COMMENT ON COLUMN roles.description_ IS 'Description';
|
||||
COMMENT ON COLUMN roles.is_active IS 'Flag to disable role';
|
||||
COMMENT ON COLUMN roles.order# IS 'Roles order in any form of list/report';
|
||||
COMMENT ON COLUMN roles.app_id IS 'Application ID';
|
||||
COMMENT ON COLUMN roles.role_id IS 'Role ID';
|
||||
COMMENT ON COLUMN roles.role_name IS 'Role name';
|
||||
COMMENT ON COLUMN roles.role_group IS 'Role group just for grouping set in APEX';
|
||||
COMMENT ON COLUMN roles.description_ IS 'Description';
|
||||
COMMENT ON COLUMN roles.is_active IS 'Flag to disable role';
|
||||
COMMENT ON COLUMN roles.order# IS 'Roles order in any form of list/report';
|
||||
|
||||
|
||||
19
database/tables/roles_e$.sql
Normal file
19
database/tables/roles_e$.sql
Normal file
@ -0,0 +1,19 @@
|
||||
CREATE TABLE roles_e$ (
|
||||
ora_err_number$ NUMBER,
|
||||
ora_err_mesg$ VARCHAR2(2000),
|
||||
ora_err_rowid$ UROWID(4000),
|
||||
ora_err_optyp$ VARCHAR2(2),
|
||||
ora_err_tag$ VARCHAR2(2000),
|
||||
app_id VARCHAR2(4000),
|
||||
role_id VARCHAR2(32767),
|
||||
role_name VARCHAR2(32767),
|
||||
role_group VARCHAR2(32767),
|
||||
description_ VARCHAR2(32767),
|
||||
is_active VARCHAR2(32767),
|
||||
order# VARCHAR2(4000),
|
||||
updated_by VARCHAR2(32767),
|
||||
updated_at VARCHAR2(4000)
|
||||
);
|
||||
--
|
||||
COMMENT ON TABLE roles_e$ IS 'DML Error Logging table for "CORE"."ROLES"';
|
||||
|
||||
@ -1,14 +1,12 @@
|
||||
--DROP TABLE sessions PURGE;
|
||||
CREATE TABLE sessions (
|
||||
app_id NUMBER(4) CONSTRAINT nn_sessions_app_id NOT NULL,
|
||||
session_id INTEGER CONSTRAINT nn_sessions_session_id NOT NULL,
|
||||
user_id VARCHAR2(30) CONSTRAINT nn_sessions_user_id NOT NULL,
|
||||
--
|
||||
created_at DATE CONSTRAINT nn_sessions_created_at NOT NULL,
|
||||
updated_at DATE CONSTRAINT nn_sessions_updated_at NOT NULL,
|
||||
app_id NUMBER(4,0) CONSTRAINT nn_sessions_app_id NOT NULL,
|
||||
session_id INTEGER CONSTRAINT nn_sessions_session_id NOT NULL,
|
||||
user_id VARCHAR2(30) CONSTRAINT nn_sessions_user_id NOT NULL,
|
||||
created_at DATE CONSTRAINT nn_sessions_created_at NOT NULL,
|
||||
updated_at DATE CONSTRAINT nn_sessions_updated_at NOT NULL,
|
||||
--
|
||||
CONSTRAINT pk_sessions
|
||||
PRIMARY KEY (app_id, session_id),
|
||||
PRIMARY KEY (app_id, session_id)
|
||||
--
|
||||
CONSTRAINT fk_sessions_app_id
|
||||
FOREIGN KEY (app_id)
|
||||
@ -18,14 +16,13 @@ CREATE TABLE sessions (
|
||||
FOREIGN KEY (user_id)
|
||||
REFERENCES users (user_id)
|
||||
DEFERRABLE INITIALLY DEFERRED
|
||||
)
|
||||
STORAGE (BUFFER_POOL KEEP);
|
||||
);
|
||||
--
|
||||
COMMENT ON TABLE sessions IS '[CORE] List of sessions';
|
||||
COMMENT ON TABLE sessions IS '[CORE] List of sessions';
|
||||
--
|
||||
COMMENT ON COLUMN sessions.app_id IS 'APEX application ID';
|
||||
COMMENT ON COLUMN sessions.session_id IS 'Session ID generated by APEX, used also in LOGS';
|
||||
COMMENT ON COLUMN sessions.user_id IS 'User ID';
|
||||
COMMENT ON COLUMN sessions.created_at IS 'Time of creation';
|
||||
COMMENT ON COLUMN sessions.updated_at IS 'Time of last update';
|
||||
COMMENT ON COLUMN sessions.app_id IS 'APEX application ID';
|
||||
COMMENT ON COLUMN sessions.session_id IS 'Session ID generated by APEX, used also in LOGS';
|
||||
COMMENT ON COLUMN sessions.user_id IS 'User ID';
|
||||
COMMENT ON COLUMN sessions.created_at IS 'Time of creation';
|
||||
COMMENT ON COLUMN sessions.updated_at IS 'Time of last update';
|
||||
|
||||
|
||||
@ -1,28 +1,25 @@
|
||||
--DROP TABLE setting_contexts PURGE;
|
||||
CREATE TABLE setting_contexts (
|
||||
app_id NUMBER(4) CONSTRAINT nn_setting_contexts_app_id NOT NULL,
|
||||
context_id VARCHAR2(64) CONSTRAINT nn_setting_contexts_name NOT NULL,
|
||||
context_name VARCHAR2(64),
|
||||
description_ VARCHAR2(1000),
|
||||
order# NUMBER(4),
|
||||
--
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
app_id NUMBER(4,0) CONSTRAINT nn_setting_contexts_app_id NOT NULL,
|
||||
context_id VARCHAR2(64) CONSTRAINT nn_setting_contexts_name NOT NULL,
|
||||
context_name VARCHAR2(64),
|
||||
description_ VARCHAR2(1000),
|
||||
order# NUMBER(4,0),
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
--
|
||||
CONSTRAINT uq_setting_contexts
|
||||
UNIQUE (app_id, context_id),
|
||||
UNIQUE (app_id, context_id)
|
||||
--
|
||||
CONSTRAINT fk_setting_contexts_app_id
|
||||
FOREIGN KEY (app_id)
|
||||
REFERENCES apps (app_id)
|
||||
)
|
||||
STORAGE (BUFFER_POOL KEEP);
|
||||
);
|
||||
--
|
||||
COMMENT ON TABLE setting_contexts IS '[CORE] List of contexts for settings overrides';
|
||||
COMMENT ON TABLE setting_contexts IS '[CORE] List of contexts for settings overrides';
|
||||
--
|
||||
COMMENT ON COLUMN setting_contexts.app_id IS 'Application ID';
|
||||
COMMENT ON COLUMN setting_contexts.context_id IS 'To allow multiple values depending on context value';
|
||||
COMMENT ON COLUMN setting_contexts.context_name IS 'Friendly name';
|
||||
COMMENT ON COLUMN setting_contexts.description_ IS 'Description';
|
||||
COMMENT ON COLUMN setting_contexts.order# IS 'Order for sorting purposes';
|
||||
COMMENT ON COLUMN setting_contexts.app_id IS 'Application ID';
|
||||
COMMENT ON COLUMN setting_contexts.context_id IS 'To allow multiple values depending on context value';
|
||||
COMMENT ON COLUMN setting_contexts.context_name IS 'Friendly name';
|
||||
COMMENT ON COLUMN setting_contexts.description_ IS 'Description';
|
||||
COMMENT ON COLUMN setting_contexts.order# IS 'Order for sorting purposes';
|
||||
|
||||
|
||||
@ -1,27 +1,15 @@
|
||||
--DROP TABLE settings PURGE;
|
||||
CREATE TABLE settings (
|
||||
app_id NUMBER(4) CONSTRAINT nn_settings_app_id NOT NULL,
|
||||
setting_name VARCHAR2(30) CONSTRAINT nn_settings_id NOT NULL,
|
||||
--
|
||||
setting_value VARCHAR2(256),
|
||||
setting_context VARCHAR2(64),
|
||||
setting_group VARCHAR2(64),
|
||||
--
|
||||
is_numeric CHAR(1),
|
||||
is_date CHAR(1),
|
||||
is_private CHAR(1),
|
||||
--
|
||||
description_ VARCHAR2(1000),
|
||||
--
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
--
|
||||
CONSTRAINT uq_settings
|
||||
UNIQUE (app_id, setting_name, setting_context),
|
||||
--
|
||||
CONSTRAINT fk_settings_app_id
|
||||
FOREIGN KEY (app_id)
|
||||
REFERENCES apps (app_id),
|
||||
app_id NUMBER(4,0) CONSTRAINT nn_settings_app_id NOT NULL,
|
||||
setting_name VARCHAR2(30) CONSTRAINT nn_settings_id NOT NULL,
|
||||
setting_value VARCHAR2(256),
|
||||
setting_context VARCHAR2(64),
|
||||
setting_group VARCHAR2(64),
|
||||
is_numeric CHAR(1),
|
||||
is_date CHAR(1),
|
||||
is_private CHAR(1),
|
||||
description_ VARCHAR2(1000),
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
--
|
||||
CONSTRAINT ch_settings_is_active
|
||||
CHECK ((is_numeric = 'Y' AND is_date IS NULL) OR is_numeric IS NULL),
|
||||
@ -29,12 +17,18 @@ CREATE TABLE settings (
|
||||
CONSTRAINT ch_settings_is_date
|
||||
CHECK ((is_date = 'Y' AND is_numeric IS NULL) OR is_date IS NULL),
|
||||
--
|
||||
CONSTRAINT uq_settings
|
||||
UNIQUE (app_id, setting_name, setting_context)
|
||||
--
|
||||
CONSTRAINT ch_settings_is_private
|
||||
CHECK (is_private = 'Y' OR is_private IS NULL)
|
||||
)
|
||||
STORAGE (BUFFER_POOL KEEP);
|
||||
CHECK (is_private = 'Y' OR is_private IS NULL),
|
||||
--
|
||||
CONSTRAINT fk_settings_app_id
|
||||
FOREIGN KEY (app_id)
|
||||
REFERENCES apps (app_id)
|
||||
);
|
||||
--
|
||||
COMMENT ON TABLE settings IS '[CORE] List of settings shared through whole app';
|
||||
COMMENT ON TABLE settings IS '[CORE] List of settings shared through whole app';
|
||||
--
|
||||
COMMENT ON COLUMN settings.app_id IS 'Application ID';
|
||||
COMMENT ON COLUMN settings.setting_name IS 'Setting ID';
|
||||
|
||||
@ -1,39 +1,34 @@
|
||||
--DROP TABLE translated_items PURGE;
|
||||
CREATE TABLE translated_items (
|
||||
app_id NUMBER(4) CONSTRAINT nn_translated_items_app_id NOT NULL,
|
||||
page_id NUMBER(6) CONSTRAINT nn_translated_items_page_id NOT NULL,
|
||||
item_name VARCHAR2(64) CONSTRAINT nn_translated_items_name NOT NULL,
|
||||
--
|
||||
value_en VARCHAR2(2000),
|
||||
value_cz VARCHAR2(2000),
|
||||
value_sk VARCHAR2(2000),
|
||||
value_pl VARCHAR2(2000),
|
||||
value_hu VARCHAR2(2000),
|
||||
--
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
app_id NUMBER(4,0) CONSTRAINT nn_translated_items_app_id NOT NULL,
|
||||
page_id NUMBER(6,0) CONSTRAINT nn_translated_items_page_id NOT NULL,
|
||||
item_name VARCHAR2(64) CONSTRAINT nn_translated_items_name NOT NULL,
|
||||
value_en VARCHAR2(2000),
|
||||
value_cz VARCHAR2(2000),
|
||||
value_sk VARCHAR2(2000),
|
||||
value_pl VARCHAR2(2000),
|
||||
value_hu VARCHAR2(2000),
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
--
|
||||
CONSTRAINT pk_translated_items
|
||||
PRIMARY KEY (app_id, page_id, item_name),
|
||||
PRIMARY KEY (app_id, page_id, item_name)
|
||||
--
|
||||
CONSTRAINT ch_translated_items_name
|
||||
CHECK (REGEXP_LIKE(item_name, '^([A-Z][A-Z0-9-_]*)$')),
|
||||
--
|
||||
CONSTRAINT fk_translated_items_page_id
|
||||
FOREIGN KEY (app_id, page_id)
|
||||
REFERENCES navigation (app_id, page_id),
|
||||
--
|
||||
CONSTRAINT ch_translated_items_name
|
||||
CHECK (REGEXP_LIKE(item_name, '^([A-Z][A-Z0-9-_]*)$'))
|
||||
)
|
||||
STORAGE (BUFFER_POOL KEEP);
|
||||
REFERENCES navigation (app_id, page_id)
|
||||
);
|
||||
--
|
||||
COMMENT ON TABLE translated_items IS '[CORE] Translations for page/app items';
|
||||
COMMENT ON TABLE translated_items IS '[CORE] Translations for page/app items';
|
||||
--
|
||||
COMMENT ON COLUMN translated_items.app_id IS 'APEX application ID';
|
||||
COMMENT ON COLUMN translated_items.page_id IS 'APEX page ID; 0 for page zero or application item';
|
||||
COMMENT ON COLUMN translated_items.item_name IS 'Item name (preferrably) to translate';
|
||||
--
|
||||
COMMENT ON COLUMN translated_items.value_en IS 'Translated value';
|
||||
COMMENT ON COLUMN translated_items.value_cz IS 'Translated value';
|
||||
COMMENT ON COLUMN translated_items.value_sk IS 'Translated value';
|
||||
COMMENT ON COLUMN translated_items.value_pl IS 'Translated value';
|
||||
COMMENT ON COLUMN translated_items.value_hu IS 'Translated value';
|
||||
COMMENT ON COLUMN translated_items.app_id IS 'APEX application ID';
|
||||
COMMENT ON COLUMN translated_items.page_id IS 'APEX page ID; 0 for page zero or application item';
|
||||
COMMENT ON COLUMN translated_items.item_name IS 'Item name (preferrably) to translate';
|
||||
COMMENT ON COLUMN translated_items.value_en IS 'Translated value';
|
||||
COMMENT ON COLUMN translated_items.value_cz IS 'Translated value';
|
||||
COMMENT ON COLUMN translated_items.value_sk IS 'Translated value';
|
||||
COMMENT ON COLUMN translated_items.value_pl IS 'Translated value';
|
||||
COMMENT ON COLUMN translated_items.value_hu IS 'Translated value';
|
||||
|
||||
|
||||
@ -1,30 +1,25 @@
|
||||
--DROP TABLE translated_messages PURGE;
|
||||
CREATE TABLE translated_messages (
|
||||
app_id NUMBER(4) CONSTRAINT nn_translated_messages_app_id NOT NULL,
|
||||
message VARCHAR2(256) CONSTRAINT nn_translated_messages_message NOT NULL,
|
||||
--
|
||||
value_en VARCHAR2(2000),
|
||||
value_cz VARCHAR2(2000),
|
||||
value_sk VARCHAR2(2000),
|
||||
value_pl VARCHAR2(2000),
|
||||
value_hu VARCHAR2(2000),
|
||||
--
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
app_id NUMBER(4,0) CONSTRAINT nn_translated_messages_app_id NOT NULL,
|
||||
message VARCHAR2(256) CONSTRAINT nn_translated_messages_message NOT NULL,
|
||||
value_en VARCHAR2(2000),
|
||||
value_cz VARCHAR2(2000),
|
||||
value_sk VARCHAR2(2000),
|
||||
value_pl VARCHAR2(2000),
|
||||
value_hu VARCHAR2(2000),
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
--
|
||||
CONSTRAINT pk_translated_messages
|
||||
PRIMARY KEY (app_id, message)
|
||||
)
|
||||
STORAGE (BUFFER_POOL KEEP);
|
||||
);
|
||||
--
|
||||
COMMENT ON TABLE translated_messages IS '[CORE] List of translated messages/notifications';
|
||||
COMMENT ON TABLE translated_messages IS '[CORE] List of translated messages/notifications';
|
||||
--
|
||||
COMMENT ON COLUMN translated_messages.app_id IS 'APEX application ID';
|
||||
COMMENT ON COLUMN translated_messages.message IS 'Message to translate';
|
||||
--
|
||||
COMMENT ON COLUMN translated_messages.value_en IS 'Translated value';
|
||||
COMMENT ON COLUMN translated_messages.value_cz IS 'Translated value';
|
||||
COMMENT ON COLUMN translated_messages.value_sk IS 'Translated value';
|
||||
COMMENT ON COLUMN translated_messages.value_pl IS 'Translated value';
|
||||
COMMENT ON COLUMN translated_messages.value_hu IS 'Translated value';
|
||||
COMMENT ON COLUMN translated_messages.app_id IS 'APEX application ID';
|
||||
COMMENT ON COLUMN translated_messages.message IS 'Message to translate';
|
||||
COMMENT ON COLUMN translated_messages.value_en IS 'Translated value';
|
||||
COMMENT ON COLUMN translated_messages.value_cz IS 'Translated value';
|
||||
COMMENT ON COLUMN translated_messages.value_sk IS 'Translated value';
|
||||
COMMENT ON COLUMN translated_messages.value_pl IS 'Translated value';
|
||||
COMMENT ON COLUMN translated_messages.value_hu IS 'Translated value';
|
||||
|
||||
|
||||
@ -1,18 +1,16 @@
|
||||
--DROP TABLE user_messages PURGE;
|
||||
CREATE TABLE user_messages (
|
||||
app_id NUMBER(4) CONSTRAINT nn_user_messages_app_id NOT NULL,
|
||||
user_id VARCHAR2(30) CONSTRAINT nn_user_messages_user_id NOT NULL,
|
||||
message_id INTEGER CONSTRAINT nn_user_messages_message_id NOT NULL, -- log_id
|
||||
message_type VARCHAR2(16),
|
||||
message_payload VARCHAR2(2000),
|
||||
session_id INTEGER,
|
||||
--
|
||||
created_by VARCHAR2(30),
|
||||
created_at DATE,
|
||||
delivered_at DATE,
|
||||
app_id NUMBER(4,0) CONSTRAINT nn_user_messages_app_id NOT NULL,
|
||||
user_id VARCHAR2(30) CONSTRAINT nn_user_messages_user_id NOT NULL,
|
||||
message_id INTEGER CONSTRAINT nn_user_messages_message_id NOT NULL,
|
||||
message_type VARCHAR2(16),
|
||||
message_payload VARCHAR2(2000),
|
||||
session_id INTEGER,
|
||||
created_by VARCHAR2(30),
|
||||
created_at DATE,
|
||||
delivered_at DATE,
|
||||
--
|
||||
CONSTRAINT pk_user_messages
|
||||
PRIMARY KEY (app_id, user_id, message_id),
|
||||
PRIMARY KEY (app_id, user_id, message_id)
|
||||
--
|
||||
CONSTRAINT fk_user_messages_app_id
|
||||
FOREIGN KEY (app_id)
|
||||
@ -22,10 +20,9 @@ CREATE TABLE user_messages (
|
||||
FOREIGN KEY (user_id)
|
||||
REFERENCES users (user_id)
|
||||
DEFERRABLE INITIALLY DEFERRED
|
||||
)
|
||||
STORAGE (BUFFER_POOL KEEP);
|
||||
);
|
||||
--
|
||||
COMMENT ON TABLE user_messages IS '[CORE] Messages for users';
|
||||
COMMENT ON TABLE user_messages IS '[CORE] Messages for users';
|
||||
--
|
||||
COMMENT ON COLUMN user_messages.app_id IS 'APEX application ID';
|
||||
COMMENT ON COLUMN user_messages.user_id IS 'User ID from USERS table';
|
||||
|
||||
@ -1,36 +1,31 @@
|
||||
--DROP TABLE user_roles PURGE;
|
||||
CREATE TABLE user_roles (
|
||||
app_id NUMBER(4) CONSTRAINT nn_user_roles_app_id NOT NULL,
|
||||
user_id VARCHAR2(30) CONSTRAINT nn_user_roles_user_id NOT NULL,
|
||||
role_id VARCHAR2(30) CONSTRAINT nn_user_roles_role_id NOT NULL,
|
||||
--
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
app_id NUMBER(4,0) CONSTRAINT nn_user_roles_app_id NOT NULL,
|
||||
user_id VARCHAR2(30) CONSTRAINT nn_user_roles_user_id NOT NULL,
|
||||
role_id VARCHAR2(30) CONSTRAINT nn_user_roles_role_id NOT NULL,
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
--
|
||||
CONSTRAINT pk_user_roles
|
||||
PRIMARY KEY (app_id, user_id, role_id),
|
||||
PRIMARY KEY (app_id, user_id, role_id)
|
||||
--
|
||||
CONSTRAINT fk_user_roles_app_id
|
||||
CONSTRAINT fk_users_roles_app_id
|
||||
FOREIGN KEY (app_id)
|
||||
REFERENCES apps (app_id),
|
||||
--
|
||||
CONSTRAINT fk_user_roles_user_id
|
||||
FOREIGN KEY (user_id)
|
||||
REFERENCES users (user_id)
|
||||
DEFERRABLE INITIALLY DEFERRED,
|
||||
--
|
||||
CONSTRAINT fk_user_roles_role_id
|
||||
CONSTRAINT fk_users_roles_role_id
|
||||
FOREIGN KEY (app_id, role_id)
|
||||
REFERENCES roles (app_id, role_id)
|
||||
DEFERRABLE INITIALLY DEFERRED
|
||||
)
|
||||
STORAGE (BUFFER_POOL KEEP);
|
||||
DEFERRABLE INITIALLY DEFERRED,
|
||||
--
|
||||
CONSTRAINT fk_users_roles_user_id
|
||||
FOREIGN KEY (user_id)
|
||||
REFERENCES users (user_id)
|
||||
DEFERRABLE INITIALLY DEFERRED DISABLE
|
||||
);
|
||||
--
|
||||
ALTER TABLE user_roles MODIFY CONSTRAINT fk_user_roles_user_id DISABLE; -- to assign roles before user is created
|
||||
COMMENT ON TABLE user_roles IS '[CORE] List of roles assigned to users';
|
||||
--
|
||||
COMMENT ON TABLE user_roles IS '[CORE] List of roles assigned to users';
|
||||
--
|
||||
COMMENT ON COLUMN user_roles.app_id IS 'APEX application ID';
|
||||
COMMENT ON COLUMN user_roles.user_id IS 'User ID from USERS table';
|
||||
COMMENT ON COLUMN user_roles.role_id IS 'Role ID from ROLES table';
|
||||
COMMENT ON COLUMN user_roles.app_id IS 'APEX application ID';
|
||||
COMMENT ON COLUMN user_roles.user_id IS 'User ID from USERS table';
|
||||
COMMENT ON COLUMN user_roles.role_id IS 'Role ID from ROLES table';
|
||||
|
||||
|
||||
@ -1,35 +1,27 @@
|
||||
/*
|
||||
DROP TABLE sessions CASCADE CONSTRAINTS PURGE;
|
||||
DROP TABLE user_roles CASCADE CONSTRAINTS PURGE;
|
||||
DROP TABLE users CASCADE CONSTRAINTS PURGE;
|
||||
*/
|
||||
CREATE TABLE users (
|
||||
user_id VARCHAR2(30) CONSTRAINT nn_users_user_id NOT NULL,
|
||||
user_login VARCHAR2(128) CONSTRAINT nn_users_login NOT NULL,
|
||||
user_name VARCHAR2(64),
|
||||
--
|
||||
lang_id VARCHAR2(5),
|
||||
is_active CHAR(1),
|
||||
--
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
--
|
||||
CONSTRAINT pk_users
|
||||
PRIMARY KEY (user_id),
|
||||
--
|
||||
CONSTRAINT uq_users_user_login
|
||||
UNIQUE (user_login),
|
||||
user_id VARCHAR2(30) CONSTRAINT nn_users_user_id NOT NULL,
|
||||
user_login VARCHAR2(128) CONSTRAINT nn_users_login NOT NULL,
|
||||
user_name VARCHAR2(64),
|
||||
lang_id VARCHAR2(5),
|
||||
is_active CHAR(1),
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
--
|
||||
CONSTRAINT ch_users_is_active
|
||||
CHECK (is_active = 'Y' OR is_active IS NULL)
|
||||
)
|
||||
STORAGE (BUFFER_POOL KEEP);
|
||||
CHECK (is_active = 'Y' OR is_active IS NULL),
|
||||
--
|
||||
CONSTRAINT pk_users
|
||||
PRIMARY KEY (user_id)
|
||||
--
|
||||
CONSTRAINT uq_users_user_login
|
||||
UNIQUE (user_login)
|
||||
);
|
||||
--
|
||||
COMMENT ON TABLE users IS '[CORE] List of users';
|
||||
COMMENT ON TABLE users IS '[CORE] List of users';
|
||||
--
|
||||
COMMENT ON COLUMN users.user_id IS 'User ID used internally (short)';
|
||||
COMMENT ON COLUMN users.user_login IS 'User login used for login into the app';
|
||||
COMMENT ON COLUMN users.user_name IS 'User name visible in the app';
|
||||
COMMENT ON COLUMN users.lang_id IS 'Preferred language';
|
||||
COMMENT ON COLUMN users.is_active IS 'Flag to disable user without changing roles';
|
||||
COMMENT ON COLUMN users.user_id IS 'User ID used internally (short)';
|
||||
COMMENT ON COLUMN users.user_login IS 'User login used for login into the app';
|
||||
COMMENT ON COLUMN users.user_name IS 'User name visible in the app';
|
||||
COMMENT ON COLUMN users.lang_id IS 'Preferred language';
|
||||
COMMENT ON COLUMN users.is_active IS 'Flag to disable user without changing roles';
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user