无论好坏,我们都有一个依赖于多个数据库的解决方案,这些数据库都引用了一个共同的管理数据库.数据库作为模块的一部分提供,并非安装所需的所有模块(可能为什么我们首先拥有多个数据库).管理数据库是必需的,但是...所以它总是在那里.
我想为混乱带来一些参照完整性和秩序,但是由于SQL服务器无法做跨数据库外键而受到阻碍.数据库中没有大量流失,但是(非)非技术用户会插入/更新信息.
我看到他的选择是:
a)使用触发器强制伪外键(好的,但有点工作)
b)使用触发器从管理员复制到其他数据库(灾难的明确方法)
c)在代码/ DAL中强加伪造的外键(与ORM不兼容)
d)不要担心它在数据库级别,使用良好的UI设计,以确保没有人做任何愚蠢的事情,并限制访问/保持呼吸直接SQL访问.
坦率地说,我倾向于选择"D",但我认为我会比我更聪明地表达意见......