2015-04-07 75 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)