聊天表该如何设计
类似csdn 私信功能
表a conversation
id | send_user | to_user |
---|---|---|
1 | 9 | 10 |
表b
message
id | conversation_id | send_user | message | |
---|---|---|---|---|
1 | 1 | 9 | 你好 | |
2 | 1 | 10 | 你好 |
接收私信方如何获取会话列表 ? 这表局限太大 不知道该如何设计表
用户a 给b 发送信息时
b方如何获取a给b的会话和b给其他人的会话?
回答:
如果不考虑性能和存储问题,仅从1.接收私信方如何获取会话列表,2.b方如何获取a给b的会话和b给其他人的会话
这两个方面考虑的话,那么表够用了.
# 接收私信方如何获取会话列表select * from conversation where to_user = b
# b方如何获取a给b的会话和b给其他人的会话?
(select * from conversation where to_user = b)
union
(select * from conversation where send_user=b)
回答:
List<ChatConversation> chatConversations = chatConversationMapper.selectList(chatConversationLambdaQueryWrapper);
//当前通讯列表 List<Long> chats = new ArrayList<>();
for (ChatConversation chatConversation : chatConversations) {
//发送方是当前用户 就取接收用户 接收方是当前用户 就取发送方用户
Long toUser = chatConversation.getUser().equals(userId) ? chatConversation.getToUser() : chatConversation.getUser();
chats.add(toUser);
}
这是我写的示例 表与你conversation表相同 用程序判断就可以了
以上是 聊天表该如何设计 的全部内容, 来源链接: utcz.com/p/944096.html