Sql 如何设计多用户数据库?
我正在做一个活动策划网站。在这个网站上,将会有很多用户。每个使用者都有自己的无菌区。Sql 如何设计多用户数据库?,sql,database-design,database-schema,Sql,Database Design,Database Schema,我正在做一个活动策划网站。在这个网站上,将会有很多用户。每个使用者都有自己的无菌区。 例如:每个用户都可以创建一个活动和一个来宾列表。现在,可能是创建活动的两个人想要邀请同一个人。我希望那个人(来宾)在数据库中被创建两次。以下是我的想法: 多数据库 我会为每个新用户创建一个数据库,每个数据库都有一个相同的模式 前缀表 例如,如果我们谈论的是用户234和342,那么将有两个表(具有相同的模式)234_guests和342_guests 一张桌子来统治他们 将有一个大的guests表,主键的一部分将
例如:每个用户都可以创建一个活动和一个来宾列表。现在,可能是创建活动的两个人想要邀请同一个人。我希望那个人(来宾)在数据库中被创建两次。以下是我的想法: 多数据库 我会为每个新用户创建一个数据库,每个数据库都有一个相同的模式 前缀表 例如,如果我们谈论的是用户234和342,那么将有两个表(具有相同的模式)234_guests和342_guests 一张桌子来统治他们 将有一个大的guests表,主键的一部分将是对guests所属用户的引用 澄清: 我将试图澄清我的问题: 约翰在我的网站上开了一个帐户。他正在为女儿筹划婚礼。鲍勃还在我的网站上开了一个账户,他正在计划他儿子的成年礼。鲍勃和约翰都认识一个叫吉姆·哈尔伯特的人。鲍勃和约翰都邀请吉姆参加他们的婚外情。为了登记客人,你必须输入他的信息。很明显,我不希望Bob和John访问相同的来宾(即使他们是同一个人!),我的问题是如何在这样的实例中设计数据库
考虑到性能、逻辑和数据库规范化,什么是最好的?
还有其他选择吗?根据我在这里收集的信息,您将得到以下裁定=>
- 一个活动可以与多个来宾建立关系
- 来宾可以与多个活动建立关系
希望这能有所帮助。我可能过于简化了,但我会这样做: 创建一个包含字段EventGUID、位置、日期等的事件表。。。然后在来宾表中包含EventGUID字段。此表可以包含以下字段:GuestGUID、EventGUID、名称、地址等 这样,您就可以为客人提供一张桌子,而且他们可以轻松地链接回他们被邀请参加的活动 在您的示例中,John在事件表中有一个条目,比如EventGUID='abc',Bob在事件表中有一个条目,EventGUID='xyz'。Jim Halpert的来宾表中将有两个条目。第一个将有GuestGUID='123'和EventGUID='abc'(这是John的事件),第二个将有GuestGUID='456'和EventGUID='xyz'(这是Bob的事件)
使用此方法比为每个用户创建数据库或表要干净得多。一个数据库x用户?在数据库上复制用户?我想你必须花更多的时间重新思考你的设计。正如在给出的第一个答案中所指出的,您最终将得到大量不必要的重复数据。