需要私人,群组和公共聊天的数据库结构 - MySQL

时间:2017-04-22 10:13:29

标签: mysql database laravel laravel-5

我的基本想法是构建一个基于Web的聊天应用程序。我已经通过互联网检查了很多数据库结构以满足我的要求,结论是有很多解决方案。

所以这里是我想的数据库结构(但我很确定它不是100%正确或至少可以改进)

表用户:

id |用户名|电子邮件| created_at | updated_at

表格聊天

id | room_type | created_at |的updated_at

表:room_members

id | room_id | user_ids(以序列化形式)

表:消息

id | room_id | sender_id |消息| created_at |的updated_at

表:接收器

id | message_id | receiver_id | read_at

有三种聊天类型:

i)私聊 - 两个用户之间的聊天

  • 用户将选择其他用户开始与他/她聊天

ii)群聊 - 用户群之间的聊天

  • 用户将其他用户添加到会议室中以开始群组聊天

iii)公开聊天 - 所有用户之间的聊天

  • 任何人都可以加入并发送消息的开放式聊天室

以下是它的工作原理:

我登录了该网站,重定向到了信息中心页面。在该页面上,我有3个选项可以开始聊天,如上所述。

备注:

1)如果用户之间有先前的聊天,我应该在我开始聊天时显示它(非常类似于Facebook) - 这适用于所有三种类型的聊天

2)我希望有一个功能,说明当特定用户阅读邮件时。

3)我希望尽可能保持其可扩展性,以便将来增强

由于

1 个答案:

答案 0 :(得分:0)

是的,这个DB结构对于make alpha版本是可行的。 你可以根据自己的要求做一些小改动。