DROP TABLE IF EXISTS `sys_message`; CREATE TABLE `sys_message` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '本表的uid', `subject` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '主题', `struct_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'text' COMMENT '消息体类型,全小写化,text=文本;md=markdown文本;image=图片;file=文件;media=视频;audio=音频;sticker=表情包;goods_card=商品卡片;等等后期定义', `content` json DEFAULT NULL COMMENT '正文体,是一个json', `created_at` datetime DEFAULT NULL COMMENT '发送时间', `updated_at` datetime DEFAULT NULL COMMENT '更新时间', `expired_at` datetime DEFAULT NULL COMMENT '全局有效截止时间,最好设置1个月', PRIMARY KEY (`id`), KEY `IDX_uid` (`uid`), KEY `DIX_expired_at` (`expired_at`) COMMENT '查询有效时间的系统消息' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统全局消息内容'; DROP TABLE IF EXISTS `message`; CREATE TABLE `message` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '本表的uid', `subject` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '主题', `struct_type` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'text' COMMENT '消息体类型,全小写化,text=文本;md=markdown文本;image=图片;file=文件;media=视频;audio=音频;sticker=表情包;goods_card=商品卡片;等等后期定义', `receive_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '目标接收人uid,当系统发送的,可以是所有人', `receive_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '接收对象类型,user=单个用户;all_user=所有用户', `from_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '发送方uid', `from_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '来源,user=单个用户;sys=系统', `sys_msg_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '系统消息的UID', `content` json DEFAULT NULL COMMENT '正文体,是一个json', `created_at` datetime DEFAULT NULL COMMENT '发送时间', `updated_at` datetime DEFAULT NULL COMMENT '更新时间', `read_at` datetime DEFAULT NULL COMMENT '接收者阅读时间', PRIMARY KEY (`id`), KEY `IDX_uid` (`uid`), KEY `IDX_receive` (`receive_uid`,`from_type`,`sys_msg_uid`) COMMENT '查接收是否创建的系统发送的消息', KEY `IDX_p2p` (`receive_uid`,`from_uid`) COMMENT '一对一聊天查询列表,最左永远是接收者' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='消息内容';