聊天会话列表应该如何设计表

聊天会话列表包含【群聊和私聊】
目前有的数据表
群聊信息表
私聊好友表 im_friend
聊天信息表 im_messages
用户表 users

查询会话列表,如何能同时查询到群聊和私聊的最新会话:disappointed_relieved:
是需要在建立关系表吗?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 3

一开源项目的表设计仅供参考

CREATE TABLE `talk_records` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '聊天记录ID',
  `talk_type` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '对话类型[1:私信;2:群聊;]',
  `msg_type` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '消息类型[1:文本消息;2:文件消息;3:会话消息;4:代码消息;5:投票消息;6:群公告;7:好友申请;8:登录通知;9:入群消息/退群消息;]',
  `user_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '发送者ID(0:代表系统消息 >0: 用户ID)',
  `receiver_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '接收者ID(用户ID 或 群ID)',
  `is_revoke` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否撤回消息[0:否;1:是]',
  `is_mark` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否重要消息[0:否;1:是;]',
  `is_read` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否已读[0:否;1:是;]',
  `quote_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '引用消息ID',
  `content` text CHARACTER SET utf8mb4 COMMENT '文本消息 {@nickname@}',
  `warn_users` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '@好友 、 多个用英文逗号 “,” 拼接 (0:代表所有人)',
  `created_at` datetime DEFAULT NULL COMMENT '创建时间',
  `updated_at` datetime DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `idx_user_id_receiver_id` (`user_id`,`receiver_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
1年前 评论
臭鼬 (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!