我目前正在开发一个将来的许多项目,它将使用自己的数据库以及来自中央数据库的数据。
实施例: 包含所有会计软件包特定表的数据库“accountancy”。 数据库“personelladministration”及其特定表
但我们也使用一般的数据,并将用于所有项目,如“国家”,“城市”,...... 所以我们将这些表放在一个名为“general”的单独数据库中
我们来自db2环境,我们可以在数据库之间创建外键。 但是,我们正在切换到无法在数据库之间放置外键的MS SQL服务器。
我已经看到解决方法是使用触发器,但我不相信这是一个干净的解决方案。
我们的设置是否有问题?因为我把把具有一般数据的表放在一个单独的数据库中而不是在每个数据库中都有一个“国家”表似乎是正确的,这种接缝难以维护和无效。
有什么方法可以解决这个问题?
答案 0 :(得分:1)
我想说,在多个数据库中重现国家并不是一个糟糕的表格。我宁愿复制像这样的静态数据,而不是使用更精细的技术。 sql server中每个数据库有一个物理模式,无法共享模式。这就是人们使用复制或触发器来共享数据的原因。
我可以在一段时间内解决这个问题。我们有一个用于身份验证的数据库,但是,这些用户必须在多个应用程序之间共享,其中一些应用程序有自己的数据库。
Here is my question on this topic
我们使用复制并使用自定义身份验证/注册服务代理将数据保存到数据中。
使用视图,在他的答案中建议的Sourav_Agasti中,将是静态数据最直接的方法。您可以创建视图和索引视图,并从链接服务器上的数据库连接数据。
答案 1 :(得分:0)
创建一个环回链接服务器,然后在这个"中央数据库"通过这个链接服务器。会有次要的性能影响,但它足以通过非常简单的方式进行补偿。