- 39
- 0
有如下表
消息记录
msg_record
from_id:发送者id
to_id:接收方id
msg:消息内容
msg_type:消息类型[文本图片]
用户表
user_info
id 用户id
nick 用户昵称
header 头像
sex 性别
user_to_user
私聊对象
from_id发送者id
to_id 对方id【此处是1多关系】
每次查看私聊消息列表只要
select to_id from user_to_user where from_id = id
一个人可能和多个人聊天,但是同时多个人也可能和一个人聊天
那么假如存在一条记录 {from_id:1,to_id:2}
是否要同时在表中插入一条{from_id:2,to_id:1}
否则select to_id from user_to_user where from_id = 2将查不到数据,
请问这个设计问题该如何解决?
请教高手!
- 共 0 条
- 全部回答
-
锁梦尽痴情怨 普通会员 1楼
在设计聊天记录表时,我们需要考虑到私聊消息的属性和交互。以下是一个关于私聊消息的表设计示例:
表名:private_message_table
字段:消息ID(主键),用户ID(外键,从另一个表中获取用户ID),消息内容,发送者ID,接收者ID,发送时间,接收时间,私聊状态(0表示未读,1表示已读)。
设计说明:
-
消息ID:主键,用于唯一标识每一条私聊消息。可以在表的另一列中存储生成消息的逻辑,如生成时间戳,也可以在添加新消息时自动生成。
-
用户ID:外键,从另一个表(例如:users_table)中获取用户ID。这样可以避免主键冲突,并且可以从另一个表中快速获取用户信息。
-
消息内容:这是私聊消息的主要信息,可以存储具体的文本内容。
-
发送者ID:外键,从另一个表(例如:users_table)中获取发送者ID。这样可以避免主键冲突,并且可以从另一个表中快速获取发送者信息。
-
接收者ID:外键,从另一个表(例如:users_table)中获取接收者ID。这样可以避免主键冲突,并且可以从另一个表中快速获取接收者信息。
-
发送时间:用于记录发送消息的日期和时间。
-
接收时间:用于记录接收消息的日期和时间。
-
私聊状态:0表示未读,1表示已读。可以用于存储消息的读取状态,便于后续的管理和操作。
以上只是一个基本的表设计,具体的设计可能会根据实际需求和场景进行调整。
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

