app_messagetables.sql 4.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. -- 消息表
  2. CREATE TABLE `kku_app_messages` (
  3. `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  4. `type` varchar(20) NOT NULL COMMENT '消息类型:system=系统消息,user=用户消息',
  5. `template_id` bigint unsigned DEFAULT NULL COMMENT '模板ID,为空表示非模板消息',
  6. `template_code` varchar(50) DEFAULT NULL COMMENT '模板代码,冗余字段,方便查询',
  7. `title` varchar(255) NOT NULL COMMENT '消息标题',
  8. `content` text NOT NULL COMMENT '消息内容',
  9. `content_type` varchar(20) NOT NULL DEFAULT 'text' COMMENT '内容类型:text=纯文本,html=富文本,markdown=MD格式,json=JSON格式',
  10. `data` json DEFAULT NULL COMMENT '消息数据',
  11. `variables_data` json DEFAULT NULL COMMENT '模板变量数据,用于存储模板变量的实际值',
  12. `sender_id` bigint unsigned NOT NULL COMMENT '发送者ID',
  13. `sender_type` varchar(20) NOT NULL COMMENT '发送者类型:system=系统,user=用户',
  14. `receiver_id` bigint unsigned DEFAULT NULL COMMENT '接收者ID,为空表示群发',
  15. `parent_id` bigint unsigned DEFAULT NULL COMMENT '父消息ID,用于消息回复',
  16. `allow_reply` tinyint NOT NULL DEFAULT '1' COMMENT '是否允许回复:0不允许 1允许',
  17. `is_read` tinyint NOT NULL DEFAULT '0' COMMENT '是否已读:0未读 1已读',
  18. `read_at` timestamp NULL DEFAULT NULL COMMENT '阅读时间',
  19. `status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:0删除 1正常',
  20. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  21. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  22. PRIMARY KEY (`id`),
  23. KEY `kku_app_messages_type_index` (`type`),
  24. KEY `kku_app_messages_template_id_index` (`template_id`),
  25. KEY `kku_app_messages_template_code_index` (`template_code`),
  26. KEY `kku_app_messages_content_type_index` (`content_type`),
  27. KEY `kku_app_messages_sender_id_index` (`sender_id`),
  28. KEY `kku_app_messages_receiver_id_index` (`receiver_id`),
  29. KEY `kku_app_messages_parent_id_index` (`parent_id`),
  30. KEY `kku_app_messages_is_read_index` (`is_read`),
  31. KEY `kku_app_messages_status_index` (`status`),
  32. CONSTRAINT `kku_app_messages_template_id_foreign` FOREIGN KEY (`template_id`) REFERENCES `kku_app_message_templates` (`id`) ON DELETE SET NULL
  33. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='站内信消息表';
  34. -- 消息接收表(用于群发消息)
  35. CREATE TABLE `kku_app_message_recipients` (
  36. `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  37. `message_id` bigint unsigned NOT NULL COMMENT '消息ID',
  38. `user_id` bigint unsigned NOT NULL COMMENT '用户ID',
  39. `is_read` tinyint NOT NULL DEFAULT '0' COMMENT '是否已读:0未读 1已读',
  40. `read_at` timestamp NULL DEFAULT NULL COMMENT '阅读时间',
  41. `status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:0删除 1正常',
  42. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  43. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  44. PRIMARY KEY (`id`),
  45. UNIQUE KEY `kku_app_message_recipients_message_user_unique` (`message_id`, `user_id`),
  46. KEY `kku_app_message_recipients_user_id_index` (`user_id`),
  47. KEY `kku_app_message_recipients_is_read_index` (`is_read`),
  48. KEY `kku_app_message_recipients_status_index` (`status`)
  49. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='站内信群发接收表';
  50. -- 消息模板表
  51. CREATE TABLE `kku_app_message_templates` (
  52. `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  53. `name` varchar(100) NOT NULL COMMENT '模板名称',
  54. `code` varchar(50) NOT NULL COMMENT '模板代码',
  55. `type` varchar(20) NOT NULL COMMENT '消息类型:system=系统消息,user=用户消息',
  56. `title` varchar(255) NOT NULL COMMENT '消息标题',
  57. `content` text NOT NULL COMMENT '消息内容',
  58. `content_type` varchar(20) NOT NULL DEFAULT 'text' COMMENT '内容类型:text=纯文本,html=富文本,markdown=MD格式,json=JSON格式',
  59. `variables` json DEFAULT NULL COMMENT '变量定义',
  60. `allow_reply` tinyint NOT NULL DEFAULT '1' COMMENT '是否允许回复:0不允许 1允许',
  61. `status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:0禁用 1启用',
  62. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  63. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  64. PRIMARY KEY (`id`),
  65. UNIQUE KEY `kku_app_message_templates_code_unique` (`code`),
  66. KEY `kku_app_message_templates_type_index` (`type`),
  67. KEY `kku_app_message_templates_content_type_index` (`content_type`),
  68. KEY `kku_app_message_templates_status_index` (`status`)
  69. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='站内信模板表';