2011-12-19 2 views

ответ

12

Нет, у вас не может быть внешних ключей между базами данных.

Целостность данных находится в пределах одной базы данных. Если вам нужна транзакционная согласованность между базами данных, вы должны использовать одну базу данных. Основная проблема заключается в резервном копировании/восстановлении: после восстановления вы получите поврежденные данные, поскольку ваши резервные копии несовместимы.

Недавний блог статьи "One Database or Ten?" объясняет более подробно

Сказать, что вы можете использовать триггеры, если вам это нужно, и готовы были сломаны данные

+1

+1 для ссылки. –

+0

Также хорошо: http://dba.stackexchange.com/questions/47387/best-practice-either-create-multiple-databases-or-multiple-users Он создает его как аргумент «множественная база данных по сравнению с несколькими схемами» , и один комментатор упоминает, что «существует очень мало сценариев, когда использование нескольких баз данных на одном сервере - лучшая практика». Другой говорит: «Oracle RDBMS всегда была разработана для размещения нескольких схем в одной базе данных, а для разных приложений - путь. Это одно из главных отличий между Oracle и (скажем) MS SQL Server или MySQL». – Triynko

5

Да, вы можете, но не использующих внешние ключи:

  1. вы можете использовать специальные сохраненные проки, который проверяет целостность - в этом случае вы должны сделать пользователь использовать только эти процедуры все CRUD РАБОТЫ нс в обоих DBS

  2. триггеров, которые будут проверять то же

  3. Все вышеперечисленное должно выполняться в правильной изоляции транзакции быть уверен, что ваши «только проверенными» значения не будут удалены в момент

 Смежные вопросы

  • Нет связанных вопросов^_^