38 lines
1.5 KiB
SQL
38 lines
1.5 KiB
SQL
--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,
|
|
--
|
|
CONSTRAINT pk_user_messages
|
|
PRIMARY KEY (app_id, user_id, message_id),
|
|
--
|
|
CONSTRAINT fk_user_messages_app_id
|
|
FOREIGN KEY (app_id)
|
|
REFERENCES apps (app_id),
|
|
--
|
|
CONSTRAINT fk_user_messages_user_id
|
|
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 COLUMN user_messages.app_id IS 'APEX application ID';
|
|
COMMENT ON COLUMN user_messages.user_id IS 'User ID from USERS table';
|
|
COMMENT ON COLUMN user_messages.message_id IS 'Message id';
|
|
COMMENT ON COLUMN user_messages.message_type IS 'Message type';
|
|
COMMENT ON COLUMN user_messages.message_payload IS 'Message itself';
|
|
COMMENT ON COLUMN user_messages.session_id IS 'Session id';
|
|
COMMENT ON COLUMN user_messages.delivered_at IS 'Stamp of delivery';
|
|
|