gpt4 book ai didi

database-design - 私信设计

转载 作者:行者123 更新时间:2023-12-04 06:58:51 25 4
gpt4 key购买 nike

我正在开发一个新网站,我必须为我们的用户发送私有(private)消息。我已经在其他项目上做过这个,但是那里的设计似乎不正确(例如,我不能让两个以上的人参与一条消息)。
那么什么是“正确”的方法呢?我想为我的用户提供与 Facebook 相同的功能(同样,我已经这样做了,但感觉很脏 :))
因此,系统应支持 2 个或更多用户的对话和类似线程的消息。

我在想,一种解决方案是有两个这样的表:

pm_messages:
编号 | pm_messages_id |user_id |标题 |内容 |约会时间

pm_recipients:
编号 | pm_messages_id |用户 ID |看过|已删除

我会将实际内容存储在“pm_messages”表中,并将收件人(包括原始发件人)存储在“pm_recipients”表中。

这是正确的方向还是我完全不同意?这里困扰我的是,在所有收件人都删除了导致一些尴尬的删除逻辑之前,消息并没有真正被删除。

最佳答案

如果可以有多个收件人,并且他们可以发送回复消息,那么您更多的是处理某种聊天应用程序。您可以将“聊天” session 或对话存储在单独的表格中,其中对话和参与者之间的关系为 1-n,对话和消息之间的关系为 1-n(下表列出)。但最终,这当然取决于你。对于常规消息发送,您使用的消息和收件人之间的 1-n 即可。

table user:
- id (pk)
- name

table conversation (one entry per "chat/messaging" session)
- id (pk)
- started_by_user_id
- started_ts

table conversation_participant (keeps track of all recipients)
- id (pk)
- conversation_id
- user_id (refers to user.id)

table message
- id
- conversation_id (refers to conversation.id)
- sender (refers to user.id)
- msg

关于database-design - 私信设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/564917/

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