2015-04-07 76 views
-2

我想創建一個Wedding應用程序,並且我有一個MySQL數據庫。 每個用戶都可以添加很多賓客。如何組織我的數據庫?我有兩種選擇:
1.創建一個名爲Users的表,其中包含電子郵件和密碼,然後創建一個名爲Guests列的電子郵件和來賓列表。在表格嘉賓中,我可以爲每個用戶的所有訪客存儲一個XML節點。但這似乎是混亂的。
2.爲每個用戶創建新模式,並創建一個名爲Guests的表,其中包含表示客人(名稱,姓氏,電話等)的列。而且每個紀錄都將成爲嘉賓。如何組織MySQL數據庫

你能幫我選擇正確的方法嗎?並解釋我爲什麼。

謝謝

+0

爲什麼不能在用戶表有一個一對多的關係,以客桌? – MadProgrammer

+0

我從來沒有想過這個。但是,如果用戶將有500位來賓,並且將有500位用戶呢?如果會有250.000條記錄,無關緊要嗎?如果我將爲每個用戶使用新的模式,是不是更有組織? – Ghita

+0

我真的不認爲像MySQL這樣的數據庫會在兩張表中的250,000條記錄閃爍 – MadProgrammer

回答

0

創建一個名爲「客人」一個表,其中你把所有客戶的數據。一定要爲每位客人提供一個唯一的密鑰,比如說guest_id。

使用所有用戶數據和名爲user_id的列創建名爲'Users'的第二個表。

創建將連接前兩個表的第三個表。稱它爲邀請。在這裏,您至少有兩列:user_idguest_id。此表中的主鍵應由這兩列組成。

因此,您對每個訪客/用戶在其私人表格中都有獨特的數據。您可以使用第三個表invitations連接第一表:第三表格內容

例(invitations):

user_id | guest_id 
---------------------- 
user_id_1 | guest_id_1 
user_id_1 | guest_id_2 
..... 
user_id_2 | guest_id_1 (this guest is invited on both weddings :)) 
user_id_2 | guest_id_999 (this one is only here)