为用户之间的聊天设计

cin*_*992 3 database-design laravel

我有 3 个模型:Eventsgroupsusers

关系:

事件 - 用户 - 多对多。组 - 用户 - 多对多。

将有一场小组聊天和一场内部活动。我将实现两个或多个用户之间的聊天。最好的设计方法是什么?我创建了聊天模型以及聊天和用户之间的多对多关系。

第一个想法:群组和事件聊天的成员将分别存储在event_usersgroup_users表中。只有用户之间的聊天记录才会存储在chat_users.

第二个想法:chat_users将与event_users表同步group_users。优点是管理聊天的逻辑分离,不会有很多复杂的查询。

And*_*kus 5

我相信它与和Chat具有多态性关联(也许也是如此)。这里提供了该问题的一些解决方案: https://www.slideshare.net/billkarwin/practical-object-orient-driven-models-in-sql/29-Polymorphic_Associations_Solutions_Exclusive_arcsGroupEventUser

像这样的东西可以工作吗?

聊天用户

  • ID
  • 用户身份
  • 聊天ID

聊天(独家弧线方法)

  • ID
  • event_id(可为空)
  • group_id(可为空)
  • 描述/等

聊天留言

  • ID
  • 聊天ID
  • 用户 ID 来源
  • user_id_to(可为空)
  • 日期
  • 信息

所做的假设:

  • 事件/组可以包含多个聊天
  • 用户可以加入群组,但不能加入群组聊天

此外,Laravel 附带了原生的多态关系处理解决方案。它也可以适合这里。