К лучшему или худшему, у нас есть решение, основанное на нескольких базах данных, которые ссылаются на общую базу данных администрирования. Базы данных поставляются как часть модулей, и не все модули необходимы для установки (возможно, почему у нас есть несколько баз данных в первую очередь). Однако необходима база данных администратора, поэтому она всегда будет там.
Я хотел бы привести некоторую ссылочную целостность и порядок в хаос, но мне не удалось заставить SQL-сервер не выполнять внешние внешние ключи. В базе данных не так много сбоев, но информация будет вставлена /обновлена (ах) нетехническими пользователями.
Мои варианты, которые я вижу, следующие:
a) Наложить псевдо-внешний ключ с помощью триггеров (нормально, но немного работы)
b) Используйте триггеры для репликации из admin в другие базы данных (ясный рецепт для бедствия)
c) Настроить внешний ключ puedo в коде /DAL (плохо работает с ORM)
d) Не беспокойтесь об этом на уровне БД, используйте хороший дизайн пользовательского интерфейса, чтобы убедиться, что никто не делает что-то глупое и не ограничивает доступ/удержание дыхания при прямом доступе SQL.
Честно говоря, я склонен пойти с "D", но решил, что я выйду за мнения умнее меня...