我正試圖設計數據庫模式,使其能夠同時進行私人聊天和羣聊。下面是我到目前爲止有:用於聊天的數據庫模式:私人和組
所以 - 的理論是,即使用戶只是在一對一私聊,他們仍然被分配一個「roomID」,和每個消息他們發送的是room
。
要了解他們所涉及的所有房間,我可以從表participants
中選擇一個列表以查找。
這是正常的,但是感覺對我來說,room
表是略顯多餘,因爲我並不真的需要一個房間名稱,我可以離開它,只需使用participants
表和SELECT DISTINCT roomID FROM particpants
找出個別房間。
任何人都可以向我解釋一個更好的結構或爲什麼我應該保持房間的桌子?
你有外鍵嗎? –
@RyanGadsdon是的行代表外鍵 – Chud37
啊我看到了,以前看到FK旁邊的名稱:)我會分開私人和公共房間。或者使用私人和公共房間子類創建房間屬性。我會保留空間,因爲如果你有不同的聊天室會發生什麼?如體育,社交,工作。將人們鏈接到聊天室會更容易 –