【发布时间】:2011-11-06 12:14:26
【问题描述】:
如何存储数据库之间共享的数据?
假设一个联系人管理系统的数据库。每个用户都有一个单独的数据库。用户可以存储他/她的联系人的教育信息。
目前,每个数据库中都有一个名为School 的表,其中存储了该国每所学校的名称。 School 表被 Contact 表引用为 FK。
随着新学校的增加或现有学校的更名,每年左右都会更新学校表。
由于学校信息在所有用户数据库中都是通用的,因此将其移动到单独的通用数据库中似乎是一个更好的主意。但是当它被移动到一个单独的数据库时,你不能在School和Contact之间创建一个FK约束。
这种情况的最佳做法是什么?
(如果相关的话,我正在使用 SQL Server)
【问题讨论】:
-
为什么要给每个用户一个单独的数据库?
-
我给每个用户一个单独的数据库,因为每个用户都是一个使用该软件的整个组织,拥有大量数据。
-
针对应该 FKed 到
Schools表的表的查询有多常见? -
当用户查找该联系人的教育信息时,这种情况并不常见。或者存在用户搜索从某个学校毕业的所有联系人的情况。
-
作为旁注,我找到了为每个用户使用单独数据库的答案。 stackoverflow.com/questions/13348/…
标签: sql-server database database-design schema foreign-keys