是否建议引用不同数据库中的表?

时间:2015-01-15 16:34:43

标签: sql-server database foreign-keys

在处理大型项目时,其中一个想法是将所有内容都模块化。现在是数据库设计。现有数据库需要重新设计(它有超过200个表),其中一个建议是为每个模块建立单独的数据库。这种方法的问题在于许多表是相关的,因此如果某些表将被移动到另一个数据库,则其中一部分将具有对另一个数据库的引用(id)。这是一种甚至推荐的方法,还是将所有内容保存在一个数据库中更好?

如果这种方法是正常的,那么如何处理参照完整性以及最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

不幸的是,你的大多数问题的答案都只是“它取决于”。没有适合任何商店的设置。扩展数据库可能是一个问题。如果一个模块以指数方式增长但未被广泛使用(历史模块)而另一个模块频繁读取但增长很少(用户帐户模块),那么将高增长模块放在具有HDD和高读取功能的计算机上可能更具成本效益如果成本是贵公司的问题,SSD上的模块。显然还有其他问题,但这是我能想到的一个问题。

您可以获得的唯一可靠答案主要与您关于外键和引用的问题有关。您需要在多DB Senario中处理它的方式是使用触发器。每个表上的触发器将用于强制数据库之间的引用完整性,因为您不能在数据库之间使用外键关系。