消息通知记录表.sql 1.9 KB

1234567891011121314151617181920212223242526272829303132333435
  1. -- ============================================================
  2. -- 消息通知记录表 + 接收人关联表(DM8)
  3. -- 设计:消息主题/内容只存一份,接收人独立关联,批量发送无冗余
  4. -- 接收人名称不存储,查询时关联 PERSONAL_INFO/ENTERPRISE_INFO 实时获取
  5. -- ============================================================
  6. CREATE TABLE notification_record (
  7. ID VARCHAR(36) NOT NULL,
  8. MODULE_TYPE VARCHAR(50) COMMENT '来源模块',
  9. SUBJECT VARCHAR(200) NOT NULL COMMENT '消息主题',
  10. CONTENT VARCHAR(2000) COMMENT '消息内容',
  11. SENDER_ID VARCHAR(36) COMMENT '推送人用户ID(关联sys_user)',
  12. SENDER VARCHAR(50) NOT NULL COMMENT '推送人姓名',
  13. SEND_TIME TIMESTAMP NOT NULL COMMENT '推送时间',
  14. CREATE_BY VARCHAR(50),
  15. CREATE_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
  16. SYS_ORG_CODE VARCHAR(50),
  17. PRIMARY KEY (ID)
  18. );
  19. COMMENT ON TABLE notification_record IS '消息通知记录表';
  20. ALTER TABLE notification_record ADD EXPIRE_TIME TIMESTAMP;
  21. COMMENT ON COLUMN notification_record.EXPIRE_TIME IS '过期时间';
  22. ALTER TABLE notification_record ADD STATUS VARCHAR(20) DEFAULT '0';
  23. COMMENT ON COLUMN notification_record.STATUS IS '状态: 0未读 1已读';
  24. CREATE TABLE notification_target (
  25. NOTIFICATION_ID VARCHAR(36) NOT NULL COMMENT '消息ID',
  26. TARGET_TYPE VARCHAR(20) NOT NULL COMMENT '类型: personal/enterprise',
  27. TARGET_ID VARCHAR(36) NOT NULL COMMENT '目标ID'
  28. );
  29. COMMENT ON TABLE notification_target IS '消息接收人关联表';
  30. CREATE INDEX idx_nt_target ON notification_target(TARGET_TYPE, TARGET_ID);
  31. CREATE INDEX idx_nt_notify ON notification_target(NOTIFICATION_ID);
  32. ALTER TABLE notification_target ADD STATUS VARCHAR(20) DEFAULT '0';
  33. COMMENT ON COLUMN notification_target.STATUS IS '状态: 0未读 1已读';