【发布时间】:2012-11-29 10:05:23
【问题描述】:
我正在制作一个活动策划网站。在这个网站上,会有很多用户。每个用户都有自己的无菌区。
例如:每个用户都可以创建一个活动和一个客人列表。现在,可能是创建活动的两个人想要邀请同一个人。我希望那个人(客人)在数据库中被创建两次。以下是我的想法:
多个数据库
我会为每个新用户创建一个数据库,每个数据库都有相同的架构。
带前缀的表格
例如,如果谈论的是用户 234 和 342,则将有两个表(具有相同的架构)234_guests 和 342_guests。
一张桌子统统统统
会有一个大的客人表,主键的一部分将是客人所属的用户的引用。
澄清: 我将尝试澄清我的问题: 约翰在我的网站上开了一个帐户。他正在为女儿筹办婚礼。 Bob 还在我的网站上开设了一个帐户,他正在计划他儿子的 Bar Mitzva。 Bob 和 John 都认识一个叫 Jim Halpert 的人。鲍勃和约翰都邀请吉姆参加他们的婚外情。为了注册客人,您必须输入他的信息。我显然不希望 Bob 和 John 访问相同的客人(即使他们是同一个人!),我的问题是在这种情况下如何设计数据库。
考虑到性能、逻辑、数据库规范化,什么是最好的?
还有其他选择吗?
【问题讨论】:
-
一个数据库 x 用户?复制数据库上的用户?我想你必须花更多时间重新思考你的设计。正如给出的第一个答案所指出的那样,您最终会得到大量不必要的重复数据。
标签: sql database-design database-schema