场景
私信系统
A向B发送了一条私信,B回复了两条私信 ,
无论是在A用户私信列表 还是B私信列表 都应该是只看到一条;
在私信详情 都可以看到A和B通信的所有信息
分析
- 除了明显的唯一性显示问题 && 全部显示问题; 还有删除,已经阅读的问题;
A删除了自己发送的一条私信;但是B还是应该可以看到,不要相互影响
- 一条私信的发生,存数据库中两份,唯一的不同是这条私信的归属
参考文档
- 大爷就是大爷,没想到啊 没想到
OSChina 的留言表设计说明
解决
- 表结构的设计
- 解决思路
- 一条私信存储两条,唯一的不同是私信的归属
- 介绍重要字段
user_id
friend_id
from_user_id
to_user_id
- user_id是标识这条数据信息属于哪个用户
- friend_id 标识关联的用户
四个字段作用并没有重复, 不然的话还需要另外一个字段标识是发出的留言还是收到的留言,在做唯一性的筛选的 && 排序的时候 可能就需要union了,影响性能