Exported tables

This commit is contained in:
Jan Kvetina 2022-07-04 06:49:28 +02:00
parent 22422550a2
commit 5ba4c0299e
21 changed files with 364 additions and 454 deletions

View File

@ -1,20 +1,16 @@
--DROP TABLE apps CASCADE CONSTRAINTS;
CREATE TABLE apps ( CREATE TABLE apps (
app_id NUMBER(4) CONSTRAINT nn_apps_app_id NOT NULL, app_id NUMBER(4,0) CONSTRAINT nn_apps_app_id NOT NULL,
--
description_ VARCHAR2(1000), description_ VARCHAR2(1000),
is_visible CHAR(1), is_visible CHAR(1),
--
updated_by VARCHAR2(30), updated_by VARCHAR2(30),
updated_at DATE, updated_at DATE,
-- --
CONSTRAINT pk_apps
PRIMARY KEY (app_id),
--
CONSTRAINT ch_apps_is_visible CONSTRAINT ch_apps_is_visible
CHECK (is_visible = 'Y' OR is_visible IS NULL) CHECK (is_visible = 'Y' OR is_visible IS NULL),
) --
STORAGE (BUFFER_POOL KEEP); 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';
-- --

View File

@ -1,28 +1,23 @@
--DROP TABLE logs_events PURGE;
--DROP TABLE events PURGE;
CREATE TABLE events ( CREATE TABLE events (
app_id NUMBER(4) CONSTRAINT nn_events_app_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_id VARCHAR2(30) CONSTRAINT nn_events_event_id NOT NULL,
--
event_name VARCHAR2(64), event_name VARCHAR2(64),
event_group VARCHAR2(64), event_group VARCHAR2(64),
description_ VARCHAR2(1000), description_ VARCHAR2(1000),
is_active CHAR(1), is_active CHAR(1),
-- updated_by VARCHAR2(30) DEFAULT NULL,
updated_by VARCHAR2(30),
updated_at DATE, updated_at DATE,
-- --
CONSTRAINT ch_events_is_active
CHECK (is_active = 'Y' OR is_active IS NULL),
--
CONSTRAINT pk_events CONSTRAINT pk_events
PRIMARY KEY (app_id, event_id), PRIMARY KEY (app_id, event_id)
-- --
CONSTRAINT fk_events_app_id CONSTRAINT fk_events_app_id
FOREIGN KEY (app_id) FOREIGN KEY (app_id)
REFERENCES apps (app_id), REFERENCES apps (app_id)
-- );
CONSTRAINT ch_events_is_active
CHECK (is_active = 'Y' OR is_active IS NULL)
)
STORAGE (BUFFER_POOL KEEP);
-- --
COMMENT ON TABLE events IS '[CORE] List of events interesting for business'; COMMENT ON TABLE events IS '[CORE] List of events interesting for business';
-- --

View File

@ -1,20 +1,16 @@
--DROP TABLE log_events PURGE;
CREATE TABLE log_events ( CREATE TABLE log_events (
log_id INTEGER CONSTRAINT nn_log_events_log_id NOT NULL, log_id INTEGER CONSTRAINT nn_log_events_log_id NOT NULL,
log_parent INTEGER, log_parent INTEGER,
-- app_id NUMBER(4,0) CONSTRAINT nn_log_events_app_id NOT NULL,
app_id NUMBER(4) CONSTRAINT nn_log_events_app_id NOT NULL, page_id NUMBER(6,0) CONSTRAINT nn_log_events_page_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, user_id VARCHAR2(30) CONSTRAINT nn_log_events_user_id NOT NULL,
session_id INTEGER CONSTRAINT nn_log_events_session_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_id VARCHAR2(30) CONSTRAINT nn_log_events_event_id NOT NULL,
event_value NUMBER, event_value NUMBER,
--
created_at DATE CONSTRAINT nn_log_events_created_at NOT NULL, created_at DATE CONSTRAINT nn_log_events_created_at NOT NULL,
-- --
CONSTRAINT pk_log_events CONSTRAINT pk_log_events
PRIMARY KEY (log_id), PRIMARY KEY (log_id)
-- --
CONSTRAINT fk_log_events_event_id CONSTRAINT fk_log_events_event_id
FOREIGN KEY (app_id, event_id) FOREIGN KEY (app_id, event_id)
@ -22,11 +18,9 @@ CREATE TABLE log_events (
-- --
CONSTRAINT fk_log_events_users CONSTRAINT fk_log_events_users
FOREIGN KEY (user_id) 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_id IS 'Log ID';

View File

@ -1,46 +1,25 @@
/*
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 ( CREATE TABLE logs (
log_id INTEGER CONSTRAINT nn_logs_log_id NOT NULL, -- NUMBER GENERATED BY DEFAULT AS IDENTITY NOT NULL log_id INTEGER CONSTRAINT nn_logs_log_id NOT NULL,
log_parent INTEGER, log_parent INTEGER,
-- app_id NUMBER(4,0) CONSTRAINT nn_logs_app_id NOT NULL,
app_id NUMBER(4) CONSTRAINT nn_logs_app_id NOT NULL, page_id NUMBER(6,0),
page_id NUMBER(6),
user_id VARCHAR2(30), user_id VARCHAR2(30),
flag CHAR(1) CONSTRAINT nn_logs_flag NOT NULL, flag CHAR(1) CONSTRAINT nn_logs_flag NOT NULL,
-- action_name VARCHAR2(32),
action_name VARCHAR2(64), module_name VARCHAR2(48),
module_name VARCHAR2(64), -- 48 chars, DBMS_APPLICATION_INFO limit module_line NUMBER(8,0),
module_line NUMBER(8), module_timer VARCHAR2(12),
module_timer VARCHAR2(12), -- 00:00:00.000 - INTERVAL DAY(1) TO SECOND(3),
arguments VARCHAR2(2000), arguments VARCHAR2(2000),
payload VARCHAR2(4000), payload VARCHAR2(4000),
--
session_id INTEGER, session_id INTEGER,
created_at TIMESTAMP CONSTRAINT nn_logs_created_at NOT NULL, created_at TIMESTAMP(6) CONSTRAINT nn_logs_created_at NOT NULL,
-- --
CONSTRAINT pk_logs CONSTRAINT pk_logs
PRIMARY KEY (log_id) PRIMARY KEY (log_id)
--
-- NO MORE CONSTRAINTS TO KEEP THIS AS FAST AS POSSIBLE
--
) )
PARTITION BY RANGE (created_at) PARTITION BY RANGE (created_at) INTERVAL (NUMTODSINTERVAL(1, 'DAY'))
INTERVAL (NUMTODSINTERVAL(1, 'DAY')) ( (
PARTITION P00 VALUES LESS THAN (TIMESTAMP '2021-01-01 00:00:00') PARTITION "SYS_P3208" VALUES LESS THAN (TIMESTAMP '2022-06-28 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
*/
); );
-- --
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';
@ -48,8 +27,8 @@ COMMENT ON TABLE logs IS '[CORE] Various logs raised in applic
COMMENT ON COLUMN logs.log_id IS 'Log ID generated from LOG_ID sequence'; 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.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.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.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.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.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)'; COMMENT ON COLUMN logs.module_name IS 'Module name (procedure or function name)';

View File

@ -1,17 +1,15 @@
--DROP TABLE logs_blacklist CASCADE CONSTRAINTS PURGE;
CREATE TABLE logs_blacklist ( CREATE TABLE logs_blacklist (
app_id NUMBER(4), -- CONSTRAINT nn_logs_blacklist_app_id NOT NULL, app_id NUMBER(4,0),
flag CHAR(1), flag CHAR(1),
user_id VARCHAR2(30), user_id VARCHAR2(30),
page_id NUMBER(6), page_id NUMBER(6,0),
module_like VARCHAR2(30), module_like VARCHAR2(30),
action_like VARCHAR2(30), action_like VARCHAR2(30),
--
updated_by VARCHAR2(30), updated_by VARCHAR2(30),
updated_at DATE, updated_at DATE,
-- --
CONSTRAINT uq_logs_blacklist 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 CONSTRAINT fk_logs_blacklist_app_id
FOREIGN KEY (app_id) FOREIGN KEY (app_id)
@ -19,18 +17,15 @@ CREATE TABLE logs_blacklist (
-- --
CONSTRAINT fk_logs_blacklist_user_id CONSTRAINT fk_logs_blacklist_user_id
FOREIGN KEY (user_id) FOREIGN KEY (user_id)
REFERENCES users (user_id) REFERENCES users (user_id) DISABLE
) );
STORAGE (BUFFER_POOL KEEP);
--
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.app_id IS 'App ID';
COMMENT ON COLUMN logs_blacklist.flag IS 'Flag to differentiate logs, NULL = any flag'; 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.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.module_like IS 'Module name, NULL = any module';
COMMENT ON COLUMN logs_blacklist.action_like IS 'Action name, NULL = any module'; COMMENT ON COLUMN logs_blacklist.action_like IS 'Action name, NULL = any module';

View File

@ -1,29 +1,24 @@
--DROP TABLE mail_queue PURGE;
CREATE TABLE mail_queue ( CREATE TABLE mail_queue (
queue_id NUMBER(10) CONSTRAINT nn_mail_queue_queue_id NOT NULL, queue_id NUMBER(10,0) CONSTRAINT nn_mail_queue_queue_id NOT NULL,
app_id NUMBER(4) CONSTRAINT nn_mail_queue_app_id NOT NULL, app_id NUMBER(4,0) CONSTRAINT nn_mail_queue_app_id NOT NULL,
event_id VARCHAR2(30), event_id VARCHAR2(30),
role_id VARCHAR2(30), role_id VARCHAR2(30),
template_id VARCHAR2(30), template_id VARCHAR2(30),
schedule_id VARCHAR2(30), schedule_id VARCHAR2(30),
user_id VARCHAR2(30), user_id VARCHAR2(30),
lang_id VARCHAR2(5), lang_id VARCHAR2(5),
-- mail_recipient VARCHAR2(4000),
mail_recipient VARCHAR2(4000), -- mail headers
mail_cc VARCHAR2(4000), mail_cc VARCHAR2(4000),
mail_bcc VARCHAR2(4000), mail_bcc VARCHAR2(4000),
mail_sender VARCHAR2(256), mail_sender VARCHAR2(256),
mail_subject VARCHAR2(256), mail_subject VARCHAR2(256),
mail_body CLOB, -- mail body mail_body CLOB,
--
-- @TODO: mail_attachments
--
created_by VARCHAR2(30), created_by VARCHAR2(30),
created_at DATE, created_at DATE,
sent_at DATE, sent_at DATE,
-- --
CONSTRAINT pk_mail_queue CONSTRAINT pk_mail_queue
PRIMARY KEY (queue_id), PRIMARY KEY (queue_id)
-- --
CONSTRAINT fk_mail_queue_app_id CONSTRAINT fk_mail_queue_app_id
FOREIGN KEY (app_id) FOREIGN KEY (app_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.schedule_id IS 'Schedule id';
COMMENT ON COLUMN mail_queue.user_id IS ''; COMMENT ON COLUMN mail_queue.user_id IS '';
COMMENT ON COLUMN mail_queue.lang_id IS ''; COMMENT ON COLUMN mail_queue.lang_id IS '';
--
COMMENT ON COLUMN mail_queue.mail_recipient IS ''; COMMENT ON COLUMN mail_queue.mail_recipient IS '';
COMMENT ON COLUMN mail_queue.mail_cc IS ''; COMMENT ON COLUMN mail_queue.mail_cc IS '';
COMMENT ON COLUMN mail_queue.mail_bcc IS ''; COMMENT ON COLUMN mail_queue.mail_bcc IS '';
COMMENT ON COLUMN mail_queue.mail_sender 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_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.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_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.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'; COMMENT ON COLUMN mail_queue.sent_at IS 'Time when e-mail was actually sent';

View File

@ -1,33 +1,17 @@
--DROP TABLE mail_subscriptions PURGE;
--DROP TABLE mail_schedules PURGE;
CREATE TABLE mail_schedules ( CREATE TABLE mail_schedules (
app_id NUMBER(4) CONSTRAINT nn_mail_schedules_app_id NOT 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_id VARCHAR2(30) CONSTRAINT nn_mail_schedules_schedule_id NOT NULL,
schedule_group VARCHAR2(64), schedule_group VARCHAR2(64),
description_ VARCHAR2(256), description_ VARCHAR2(256),
--
schedule_month VARCHAR2(128), schedule_month VARCHAR2(128),
schedule_day VARCHAR2(128), schedule_day VARCHAR2(128),
schedule_weekday VARCHAR2(128), schedule_weekday VARCHAR2(128),
schedule_hour VARCHAR2(128), schedule_hour VARCHAR2(128),
schedule_minute VARCHAR2(128), schedule_minute VARCHAR2(128),
schedule_interval VARCHAR2(128), schedule_interval VARCHAR2(128),
--
updated_by VARCHAR2(30), updated_by VARCHAR2(30),
updated_at DATE, 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),
--
CONSTRAINT ch_mail_schedules_hour CONSTRAINT ch_mail_schedules_hour
CHECK (REGEXP_LIKE(schedule_hour, '^(\d+,?\s*)+|(\d+[-]\d,?\s*)+$') OR schedule_hour IS NULL), CHECK (REGEXP_LIKE(schedule_hour, '^(\d+,?\s*)+|(\d+[-]\d,?\s*)+$') OR schedule_hour IS NULL),
-- --
@ -37,8 +21,20 @@ CREATE TABLE mail_schedules (
CONSTRAINT ch_mail_schedules_interval CONSTRAINT ch_mail_schedules_interval
CHECK (REGEXP_LIKE(schedule_interval, '^(\d+)$') OR schedule_interval IS NULL), 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 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...';
@ -48,8 +44,8 @@ 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.schedule_group IS 'Group for better visibility';
COMMENT ON COLUMN mail_schedules.description_ IS 'Description'; 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_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_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_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_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'; COMMENT ON COLUMN mail_schedules.schedule_interval IS 'Send every 1..30 minutes, schedule_minute is ignored';

View File

@ -1,21 +1,21 @@
--DROP TABLE mail_subscriptions PURGE;
CREATE TABLE mail_subscriptions ( CREATE TABLE mail_subscriptions (
app_id NUMBER(4) CONSTRAINT nn_mail_subscriptions_app_id NOT NULL, 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, event_id VARCHAR2(30) CONSTRAINT nn_mail_subscriptions_event_id NOT NULL,
role_id VARCHAR2(30) CONSTRAINT nn_mail_subscriptions_role_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, schedule_id VARCHAR2(30) CONSTRAINT nn_mail_subscriptions_schedule_id NOT NULL,
template_id VARCHAR2(30) CONSTRAINT nn_mail_subscriptions_template_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 eval_function VARCHAR2(64),
--
is_active CHAR(1), is_active CHAR(1),
processed_log_id NUMBER, processed_log_id NUMBER,
processed_at DATE, processed_at DATE,
--
updated_by VARCHAR2(30), updated_by VARCHAR2(30),
updated_at DATE, updated_at DATE,
-- --
CONSTRAINT ch_mail_subscriptions_is_active
CHECK (is_active = 'Y' OR is_active IS NULL),
--
CONSTRAINT pk_mail_subscriptions 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 CONSTRAINT fk_mail_subscriptions_event_id
FOREIGN KEY (app_id, event_id) FOREIGN KEY (app_id, event_id)
@ -27,14 +27,7 @@ CREATE TABLE mail_subscriptions (
-- --
CONSTRAINT fk_mail_subscriptions_schedule_id CONSTRAINT fk_mail_subscriptions_schedule_id
FOREIGN KEY (app_id, schedule_id) FOREIGN KEY (app_id, schedule_id)
REFERENCES mail_schedules (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)
); );
-- --
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';

View File

@ -1,15 +1,12 @@
--DROP TABLE mail_templates PURGE;
CREATE TABLE mail_templates ( CREATE TABLE mail_templates (
app_id NUMBER(4) CONSTRAINT nn_mail_templates_app_id NOT NULL, 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, template_id VARCHAR2(30) CONSTRAINT nn_mail_templates_template_id NOT NULL,
lang_id VARCHAR2(5) CONSTRAINT nn_mail_templates_lang_id NOT NULL, lang_id VARCHAR2(5) CONSTRAINT nn_mail_templates_lang_id NOT NULL,
template_group VARCHAR2(64), template_group VARCHAR2(64),
description_ VARCHAR2(256), description_ VARCHAR2(256),
process_function VARCHAR2(64), -- to generate specific content process_function VARCHAR2(64),
--
mail_subject VARCHAR2(256), mail_subject VARCHAR2(256),
mail_body CLOB, mail_body CLOB,
--
updated_by VARCHAR2(30), updated_by VARCHAR2(30),
updated_at DATE, updated_at DATE,
-- --

View File

@ -1,38 +1,34 @@
--DROP TABLE navigation PURGE;
CREATE TABLE navigation ( CREATE TABLE navigation (
app_id NUMBER(4) CONSTRAINT nn_navigation_app_id NOT NULL, app_id NUMBER(4,0) CONSTRAINT nn_navigation_app_id NOT NULL,
page_id NUMBER(6) CONSTRAINT nn_navigation_page_id NOT NULL, page_id NUMBER(6,0) CONSTRAINT nn_navigation_page_id NOT NULL,
-- parent_id NUMBER(6,0),
parent_id NUMBER(6), order# NUMBER(4,0),
order# NUMBER(4),
is_hidden CHAR(1), is_hidden CHAR(1),
is_reset CHAR(1), is_reset CHAR(1),
is_shared CHAR(1), -- only for CORE app is_shared CHAR(1),
--
updated_by VARCHAR2(30), updated_by VARCHAR2(30),
updated_at DATE, 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 CONSTRAINT ch_navigation_is_hidden
CHECK (is_hidden = 'Y' OR is_hidden IS NULL), CHECK (is_hidden = 'Y' OR is_hidden IS NULL),
-- --
CONSTRAINT ch_navigation_is_reset CONSTRAINT ch_navigation_is_reset
CHECK (is_reset = 'Y' OR is_reset IS NULL), CHECK (is_reset = 'Y' OR is_reset IS NULL),
-- --
CONSTRAINT pk_navigation
PRIMARY KEY (app_id, page_id)
--
CONSTRAINT ch_navigation_is_shared CONSTRAINT ch_navigation_is_shared
CHECK (is_shared = 'Y' OR is_shared IS NULL) CHECK (is_shared = 'Y' OR is_shared IS NULL),
) --
STORAGE (BUFFER_POOL KEEP); 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';
-- --

View File

@ -1,8 +1,7 @@
--DROP TABLE obj_views_source;
CREATE TABLE obj_views_source ( CREATE TABLE obj_views_source (
owner VARCHAR2(30) CONSTRAINT nn_obj_views_source_owner NOT NULL, owner VARCHAR2(30) CONSTRAINT nn_obj_views_source_owner NOT NULL,
name VARCHAR2(30) CONSTRAINT nn_obj_views_source_name NOT NULL, name VARCHAR2(30) CONSTRAINT nn_obj_views_source_name NOT NULL,
line NUMBER(10) CONSTRAINT nn_obj_views_source_line NOT NULL, line NUMBER(10,0) CONSTRAINT nn_obj_views_source_line NOT NULL,
text VARCHAR2(2000), text VARCHAR2(2000),
-- --
CONSTRAINT pk_obj_views_source CONSTRAINT pk_obj_views_source

View File

@ -1,28 +1,24 @@
--DROP TABLE roles PURGE;
CREATE TABLE roles ( CREATE TABLE roles (
app_id NUMBER(4) CONSTRAINT nn_roles_app_id NOT NULL, app_id NUMBER(4,0) CONSTRAINT nn_roles_app_id NOT NULL,
role_id VARCHAR2(30) CONSTRAINT nn_roles_role_id NOT NULL, role_id VARCHAR2(30) CONSTRAINT nn_roles_role_id NOT NULL,
role_name VARCHAR2(64), role_name VARCHAR2(64),
role_group VARCHAR2(64), role_group VARCHAR2(64),
--
description_ VARCHAR2(1000), description_ VARCHAR2(1000),
is_active CHAR(1), is_active CHAR(1),
order# NUMBER(4), order# NUMBER(4,0),
--
updated_by VARCHAR2(30), updated_by VARCHAR2(30),
updated_at DATE, updated_at DATE,
-- --
CONSTRAINT ch_roles_is_active
CHECK (is_active = 'Y' OR is_active IS NULL),
--
CONSTRAINT pk_roles CONSTRAINT pk_roles
PRIMARY KEY (app_id, role_id), PRIMARY KEY (app_id, role_id)
-- --
CONSTRAINT fk_roles_app_id CONSTRAINT fk_roles_app_id
FOREIGN KEY (app_id) FOREIGN KEY (app_id)
REFERENCES apps (app_id), REFERENCES apps (app_id)
-- );
CONSTRAINT ch_roles_is_active
CHECK (is_active = 'Y' OR is_active IS NULL)
)
STORAGE (BUFFER_POOL KEEP);
-- --
COMMENT ON TABLE roles IS '[CORE] List of roles'; COMMENT ON TABLE roles IS '[CORE] List of roles';
-- --

View 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"';

View File

@ -1,14 +1,12 @@
--DROP TABLE sessions PURGE;
CREATE TABLE sessions ( CREATE TABLE sessions (
app_id NUMBER(4) CONSTRAINT nn_sessions_app_id NOT NULL, app_id NUMBER(4,0) CONSTRAINT nn_sessions_app_id NOT NULL,
session_id INTEGER CONSTRAINT nn_sessions_session_id NOT NULL, session_id INTEGER CONSTRAINT nn_sessions_session_id NOT NULL,
user_id VARCHAR2(30) CONSTRAINT nn_sessions_user_id NOT NULL, user_id VARCHAR2(30) CONSTRAINT nn_sessions_user_id NOT NULL,
--
created_at DATE CONSTRAINT nn_sessions_created_at NOT NULL, created_at DATE CONSTRAINT nn_sessions_created_at NOT NULL,
updated_at DATE CONSTRAINT nn_sessions_updated_at NOT NULL, updated_at DATE CONSTRAINT nn_sessions_updated_at NOT NULL,
-- --
CONSTRAINT pk_sessions CONSTRAINT pk_sessions
PRIMARY KEY (app_id, session_id), PRIMARY KEY (app_id, session_id)
-- --
CONSTRAINT fk_sessions_app_id CONSTRAINT fk_sessions_app_id
FOREIGN KEY (app_id) FOREIGN KEY (app_id)
@ -18,8 +16,7 @@ CREATE TABLE sessions (
FOREIGN KEY (user_id) FOREIGN KEY (user_id)
REFERENCES users (user_id) REFERENCES users (user_id)
DEFERRABLE INITIALLY DEFERRED 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';
-- --

View File

@ -1,22 +1,19 @@
--DROP TABLE setting_contexts PURGE;
CREATE TABLE setting_contexts ( CREATE TABLE setting_contexts (
app_id NUMBER(4) CONSTRAINT nn_setting_contexts_app_id NOT NULL, 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_id VARCHAR2(64) CONSTRAINT nn_setting_contexts_name NOT NULL,
context_name VARCHAR2(64), context_name VARCHAR2(64),
description_ VARCHAR2(1000), description_ VARCHAR2(1000),
order# NUMBER(4), order# NUMBER(4,0),
--
updated_by VARCHAR2(30), updated_by VARCHAR2(30),
updated_at DATE, updated_at DATE,
-- --
CONSTRAINT uq_setting_contexts CONSTRAINT uq_setting_contexts
UNIQUE (app_id, context_id), UNIQUE (app_id, context_id)
-- --
CONSTRAINT fk_setting_contexts_app_id CONSTRAINT fk_setting_contexts_app_id
FOREIGN KEY (app_id) FOREIGN KEY (app_id)
REFERENCES apps (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';
-- --

View File

@ -1,38 +1,32 @@
--DROP TABLE settings PURGE;
CREATE TABLE settings ( CREATE TABLE settings (
app_id NUMBER(4) CONSTRAINT nn_settings_app_id NOT NULL, app_id NUMBER(4,0) CONSTRAINT nn_settings_app_id NOT NULL,
setting_name VARCHAR2(30) CONSTRAINT nn_settings_id NOT NULL, setting_name VARCHAR2(30) CONSTRAINT nn_settings_id NOT NULL,
--
setting_value VARCHAR2(256), setting_value VARCHAR2(256),
setting_context VARCHAR2(64), setting_context VARCHAR2(64),
setting_group VARCHAR2(64), setting_group VARCHAR2(64),
--
is_numeric CHAR(1), is_numeric CHAR(1),
is_date CHAR(1), is_date CHAR(1),
is_private CHAR(1), is_private CHAR(1),
--
description_ VARCHAR2(1000), description_ VARCHAR2(1000),
--
updated_by VARCHAR2(30), updated_by VARCHAR2(30),
updated_at DATE, 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),
--
CONSTRAINT ch_settings_is_active CONSTRAINT ch_settings_is_active
CHECK ((is_numeric = 'Y' AND is_date IS NULL) OR is_numeric IS NULL), CHECK ((is_numeric = 'Y' AND is_date IS NULL) OR is_numeric IS NULL),
-- --
CONSTRAINT ch_settings_is_date CONSTRAINT ch_settings_is_date
CHECK ((is_date = 'Y' AND is_numeric IS NULL) OR is_date IS NULL), 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 CONSTRAINT ch_settings_is_private
CHECK (is_private = 'Y' OR is_private IS NULL) CHECK (is_private = 'Y' OR is_private IS NULL),
) --
STORAGE (BUFFER_POOL KEEP); 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';
-- --

View File

@ -1,36 +1,31 @@
--DROP TABLE translated_items PURGE;
CREATE TABLE translated_items ( CREATE TABLE translated_items (
app_id NUMBER(4) CONSTRAINT nn_translated_items_app_id NOT NULL, app_id NUMBER(4,0) CONSTRAINT nn_translated_items_app_id NOT NULL,
page_id NUMBER(6) CONSTRAINT nn_translated_items_page_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, item_name VARCHAR2(64) CONSTRAINT nn_translated_items_name NOT NULL,
--
value_en VARCHAR2(2000), value_en VARCHAR2(2000),
value_cz VARCHAR2(2000), value_cz VARCHAR2(2000),
value_sk VARCHAR2(2000), value_sk VARCHAR2(2000),
value_pl VARCHAR2(2000), value_pl VARCHAR2(2000),
value_hu VARCHAR2(2000), value_hu VARCHAR2(2000),
--
updated_by VARCHAR2(30), updated_by VARCHAR2(30),
updated_at DATE, updated_at DATE,
-- --
CONSTRAINT pk_translated_items 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 CONSTRAINT fk_translated_items_page_id
FOREIGN KEY (app_id, page_id) FOREIGN KEY (app_id, page_id)
REFERENCES navigation (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);
-- --
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.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.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.item_name IS 'Item name (preferrably) to translate';
--
COMMENT ON COLUMN translated_items.value_en IS 'Translated value'; 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_cz IS 'Translated value';
COMMENT ON COLUMN translated_items.value_sk IS 'Translated value'; COMMENT ON COLUMN translated_items.value_sk IS 'Translated value';

View File

@ -1,27 +1,22 @@
--DROP TABLE translated_messages PURGE;
CREATE TABLE translated_messages ( CREATE TABLE translated_messages (
app_id NUMBER(4) CONSTRAINT nn_translated_messages_app_id NOT NULL, app_id NUMBER(4,0) CONSTRAINT nn_translated_messages_app_id NOT NULL,
message VARCHAR2(256) CONSTRAINT nn_translated_messages_message NOT NULL, message VARCHAR2(256) CONSTRAINT nn_translated_messages_message NOT NULL,
--
value_en VARCHAR2(2000), value_en VARCHAR2(2000),
value_cz VARCHAR2(2000), value_cz VARCHAR2(2000),
value_sk VARCHAR2(2000), value_sk VARCHAR2(2000),
value_pl VARCHAR2(2000), value_pl VARCHAR2(2000),
value_hu VARCHAR2(2000), value_hu VARCHAR2(2000),
--
updated_by VARCHAR2(30), updated_by VARCHAR2(30),
updated_at DATE, updated_at DATE,
-- --
CONSTRAINT pk_translated_messages CONSTRAINT pk_translated_messages
PRIMARY KEY (app_id, message) 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.app_id IS 'APEX application ID';
COMMENT ON COLUMN translated_messages.message IS 'Message to translate'; 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_en IS 'Translated value';
COMMENT ON COLUMN translated_messages.value_cz 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_sk IS 'Translated value';

View File

@ -1,18 +1,16 @@
--DROP TABLE user_messages PURGE;
CREATE TABLE user_messages ( CREATE TABLE user_messages (
app_id NUMBER(4) CONSTRAINT nn_user_messages_app_id NOT NULL, 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, 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_id INTEGER CONSTRAINT nn_user_messages_message_id NOT NULL,
message_type VARCHAR2(16), message_type VARCHAR2(16),
message_payload VARCHAR2(2000), message_payload VARCHAR2(2000),
session_id INTEGER, session_id INTEGER,
--
created_by VARCHAR2(30), created_by VARCHAR2(30),
created_at DATE, created_at DATE,
delivered_at DATE, delivered_at DATE,
-- --
CONSTRAINT pk_user_messages 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 CONSTRAINT fk_user_messages_app_id
FOREIGN KEY (app_id) FOREIGN KEY (app_id)
@ -22,8 +20,7 @@ CREATE TABLE user_messages (
FOREIGN KEY (user_id) FOREIGN KEY (user_id)
REFERENCES users (user_id) REFERENCES users (user_id)
DEFERRABLE INITIALLY DEFERRED 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';
-- --

View File

@ -1,32 +1,27 @@
--DROP TABLE user_roles PURGE;
CREATE TABLE user_roles ( CREATE TABLE user_roles (
app_id NUMBER(4) CONSTRAINT nn_user_roles_app_id NOT NULL, 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, user_id VARCHAR2(30) CONSTRAINT nn_user_roles_user_id NOT NULL,
role_id VARCHAR2(30) CONSTRAINT nn_user_roles_role_id NOT NULL, role_id VARCHAR2(30) CONSTRAINT nn_user_roles_role_id NOT NULL,
--
updated_by VARCHAR2(30), updated_by VARCHAR2(30),
updated_at DATE, updated_at DATE,
-- --
CONSTRAINT pk_user_roles 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) FOREIGN KEY (app_id)
REFERENCES apps (app_id), REFERENCES apps (app_id),
-- --
CONSTRAINT fk_user_roles_user_id CONSTRAINT fk_users_roles_role_id
FOREIGN KEY (user_id)
REFERENCES users (user_id)
DEFERRABLE INITIALLY DEFERRED,
--
CONSTRAINT fk_user_roles_role_id
FOREIGN KEY (app_id, role_id) FOREIGN KEY (app_id, role_id)
REFERENCES roles (app_id, role_id) REFERENCES roles (app_id, role_id)
DEFERRABLE INITIALLY DEFERRED DEFERRABLE INITIALLY DEFERRED,
)
STORAGE (BUFFER_POOL KEEP);
-- --
ALTER TABLE user_roles MODIFY CONSTRAINT fk_user_roles_user_id DISABLE; -- to assign roles before user is created CONSTRAINT fk_users_roles_user_id
FOREIGN KEY (user_id)
REFERENCES users (user_id)
DEFERRABLE INITIALLY DEFERRED DISABLE
);
-- --
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';
-- --

View File

@ -1,29 +1,21 @@
/*
DROP TABLE sessions CASCADE CONSTRAINTS PURGE;
DROP TABLE user_roles CASCADE CONSTRAINTS PURGE;
DROP TABLE users CASCADE CONSTRAINTS PURGE;
*/
CREATE TABLE users ( CREATE TABLE users (
user_id VARCHAR2(30) CONSTRAINT nn_users_user_id NOT NULL, user_id VARCHAR2(30) CONSTRAINT nn_users_user_id NOT NULL,
user_login VARCHAR2(128) CONSTRAINT nn_users_login NOT NULL, user_login VARCHAR2(128) CONSTRAINT nn_users_login NOT NULL,
user_name VARCHAR2(64), user_name VARCHAR2(64),
--
lang_id VARCHAR2(5), lang_id VARCHAR2(5),
is_active CHAR(1), is_active CHAR(1),
--
updated_by VARCHAR2(30), updated_by VARCHAR2(30),
updated_at DATE, updated_at DATE,
-- --
CONSTRAINT ch_users_is_active
CHECK (is_active = 'Y' OR is_active IS NULL),
--
CONSTRAINT pk_users CONSTRAINT pk_users
PRIMARY KEY (user_id), PRIMARY KEY (user_id)
-- --
CONSTRAINT uq_users_user_login CONSTRAINT uq_users_user_login
UNIQUE (user_login), UNIQUE (user_login)
-- );
CONSTRAINT ch_users_is_active
CHECK (is_active = 'Y' OR is_active IS NULL)
)
STORAGE (BUFFER_POOL KEEP);
-- --
COMMENT ON TABLE users IS '[CORE] List of users'; COMMENT ON TABLE users IS '[CORE] List of users';
-- --