我想创建一个Wedding应用程序,我有一个MySQL数据库。
每个用户都可以添加很多客人。如何组织我的数据库?我有两个选择:
1.使用列:电子邮件和密码创建名为Users的表,然后创建名为Guests的表,其中包含列电子邮件和来宾。在表Guest中,我可以存储每个用户的所有guest虚拟机的XML节点。但这似乎杂乱无章。
2。为每个用户创建新模式,并创建一个名为Guests的表,其中包含表示guest虚拟机的列(名称,姓氏,电话等)。每条记录都是嘉宾。
你能帮我选择正确的方法吗?并解释我为什么。
谢谢
答案 0 :(得分:0)
创建一个名为'来宾'保存所有访客数据的地方。请务必为每位客人提供一个唯一的密钥,让我们说guest_id。
创建第二个名为' Users'包含所有用户数据和名为user_id的列。
创建将连接前两个表的第三个表。称之为邀请。在这里,您将至少有两列:user_id
和guest_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)