Para bien o para mal, tenemos una solución que se basa en varias bases de datos que hacen referencia a una base de datos de administración común. Las bases de datos se envían como parte de módulos, y no se requieren todos los módulos para una instalación (probablemente por qué tenemos varias bases de datos en primer lugar). La base de datos de administración es obligatoria, sin embargo ... por lo que siempre estará allí.Diseño SQL en torno a la falta de referencias de clave externa entre bases de datos
Me gustaría traer un poco de integridad referencial y orden al caos, pero estoy bloqueado por la incapacidad del servidor SQL para hacer claves externas entre bases de datos. NO hay mucha rotación en la base de datos, pero la información será insertada/actualizada por (ejem) usuarios no técnicos.
Mis opciones como las veo son:
a) impongan clave seudo extranjera usando disparadores (bien, pero un poco de trabajo)
b) Uso disparadores para replicar de administración para otras bases de datos (una clara receta para el desastre)
c) Imponer clave externa en pseudo código/DAL (no juega bien con ORM)
d) no se preocupe de que a nivel de base de datos, utilice el buen diseño de interfaz de usuario para asegurarse nadie hace nada estúpido y restringe el acceso/mantener la respiración o n acceso directo a SQL.
Francamente, me siento inclinado a ir con "D", pero pensé que podría salir por las opiniones más inteligente que yo ...
Pensamos en esto, y ayuda un poco. Sin embargo, sigue habiendo un problema que tampoco puede colgar una clave externa de una vista en el servidor SQL. Buena idea sin embargo. – brmore
Usar una vista de esta manera le daría algo para seleccionar en una clave externa implementada por el disparador, haciéndolo más fácil. –