gpt4 book ai didi

mysql - 数据库设计 : private chat, 群聊和邮件

转载 作者:IT老高 更新时间:2023-10-29 00:17:11 29 4
gpt4 key购买 nike

Facebook 用户之间的交流似乎存储在一个漫长的“对话”中。因此,发送的电子邮件和交换的私有(private)聊天消息似乎都是一个长期对话的一部分。

我认为这个实现对用户来说效果很好(至少它对我有用)。我假设这部分的表格设计可以这样实现:

TABLE: message
- message_id
- timestamp
- from_user_id
- to_user_id
- message

如果我想支持群聊怎么办?我会做这样的事情吗:

TABLE: message
- message_id
- timestamp
- from_user_id
- message

TABLE: message_recipient

- message_recipient_id
- message_id
- to_user_id

我认为它会起作用。但是,我想知道如果我在一次长时间的对话中显示用户曾经向任何人发送过消息的每一件事,这对用户是否有意义。它可能不会。想象一下与人 A 的对话与与人 A、B、C、D 的小组对话与与人 E 的对话等等......

关于什么是可以实现的可用概念的任何建议?

最佳答案

我认为消息应该是一个实体,无论平台或发送者/接收者如何,具有 idmessagetimestamp 字段,以及一个消息关系表——就像你建议的那样——带有 idmessage_idfrom_idto_id。然后,如果您要显示单个用户到用户的对话,则可以显示他们之间的每条消息。对于群聊,您应该有一个包含 idtitletimestamp 的表来保存群聊主记录,以及另一个表来保存属于该群聊的用户,具有 idgroup_chat_iduser_id 字段。

只是我的意见以及我将如何实现它。

编辑:也许在消息实体本身上有 from_id 是有意义的,因为消息必须有一个单一的发件人 ID。

关于mysql - 数据库设计 : private chat, 群聊和邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6272904/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com