现在的想法是 两张表 一张会话表,一张消息表。发送消息时查看是否有对应的会话,没有就创建一个会话。
dialog
id
user1_id // 保证用户 user1_id > user2_id,这样方便查找两个用户的会话
user2_id
last_time // 上一个消息发送时间
last_message // 消息内容
last_username // 消息发送者
message
id
dialog_id
from_user
to_user
content
created_date
has_read
查看一个用户的所有会话的最近消息
select last_time, last_message, last_username from dialog where user1_id = userId or uesr2_id = userId order by last_time desc;
查看单独一个用户和另外一个用户的消息
select * from message where dialog_id = id;
但是这样做不知道如何设计用户删除会话或者会话中的某一条消息,如果直接删除了之后,另外一个用户的消息记录也没有了
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.