【发布时间】:2014-04-07 16:37:22
【问题描述】:
目前,我们有一个大型内部平台,该平台使用许多不同的 SQL 数据库(都在同一台服务器上)。我们总是创建新的数据库,我们觉得这些数据与我们存储在其他数据库中的数据完全不同/独立。通过这种方法,我们最终拥有了许多不同的数据库(大多数有 30-50 多个表),但它们之间不可避免地总是需要一些连接。
当我们使用实体框架时,任何跨数据库查询都被证明是一个真正的痛苦,我们尝试了许多不同的方法,我个人认为主要问题是 EF 并不能真正跨多个数据库工作。
虽然我知道答案通常是“视情况而定”,但我对人们对此的想法或观点很感兴趣,所以问题是
我们是否应该将所有独立的数据库合并到一个大型数据库中?
将我们的数据拆分到不同的数据库是否正确(即使 EF 不能很好地使用它)?
【问题讨论】:
-
对不起,但是...这取决于。 ;) 有多大?您在每个数据库中处理多少个表?一共有多少个?您始终可以在每个数据库中定义调用其他数据库并构建使用它们的实体的视图。
-
我通常建议不要分离数据,除非这很少或没有交叉通信。通常模式足以分割数据。
-
您可以尝试在“MainDatabase”上使用可更新视图,该视图将视图写入其他数据库。我不知道 EF 是否能很好地处理可更新的视图。如果使用可更新视图,我认为大多数人编写存储过程以使用 EF。但它是您可能想要研究的一个想法。
标签: sql-server database entity-framework