2017-04-22 52 views
0

我的基本想法是建立一個基於Web的聊天應用程序。爲了滿足我的要求,我在互聯網上查了很多數據庫結構,結論是有很多解決方案。需要數據庫結構的私人,組和公共聊天 - MySQL

因此,這裏的數據庫結構我認爲(但我敢肯定,這是不是100%正確,或至少可以改善)


表用戶:

id |用戶名|電子郵件| created_at |的updated_at

表chat_rooms

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


有3種類型的聊天記錄:

我)私人聊天 - 兩個用戶

  • 之間聊天的用戶會選擇另一個用戶開始跟他聊天/她

II)集團聊天 - 用戶

的組之間的聊天
  • 的用戶將其他用戶添加到房間裏開始羣聊

三)公共聊天 - 所有用戶之間的聊天

  • 一個開放的聊天室任何人都可以加入和發送消息

因此,這裏是它如何工作的:

我登錄到網站,重定向到儀表板頁面。在該頁面上,我有3個選項來開始上述聊天。

注:

1)如果有就應該儘快開始聊天(非常類似於Facebook)的顯示的用戶之間的先前聊天 - 這適用於所有三種類型的聊天記錄

2)我想有一個功能,說當一個特定的用戶閱讀一條消息。

3)我想保留它可擴展性,儘可能爲未來增強

感謝

+1

我覺得room_members和接收者不需要他們自己的唯一ID,它可以只是一個複合鍵 – Kristian

+0

私人聊天和羣聊實際上是一回事。這是關於誰有權將其他人添加到對話中 – Strawberry

回答

0

是這個數據庫結構是可行的化妝alpha版本。 您可以根據您的要求做一些小的更改。