当前位置:  开发笔记 > 开放平台 > 正文

私人信息设计

如何解决《私人信息设计》经验,为你挑选了1个好方法。

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

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

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

pm_recipients:id | pm_messages_id | user_id | has_seen | 删除

我会将实际内容存储在"pm_messages"表中,然后将收件人(包括原始发件人)存储在"pm_recipients"表中.

这是正确的方向还是我完全没有这个?让我困扰的是,在所有收件人删除了导致某些尴尬的删除逻辑的邮件之前,邮件才真正被删除.



1> tehvan..:

如果可以有多个收件人,并且他们可以发送回复消息,那么您更多地处理某种聊天应用程序.您可以将"聊天"会话或对话存储在单独的表中,对话和参与者之间具有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

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有