Я разрабатываю несколько приложений, которые будут делиться 2 или 3 таблицами базы данных, а все остальные таблицы будут независимы от каждого приложения. Общие базы данных содержат в основном информацию пользователя, и может возникнуть случай, когда другие таблицы должны быть разделены, но это говорит мой инстинкт.
Я склоняюсь над одной базой данных для решения всех приложений, потому что хочу иметь ссылочную целостность, и мне не нужно будет обновлять ту же самую информацию в каждой из баз данных, но я, вероятно, собираюсь end с базой данных из 100 + таблиц, в которых только группы из десяти таблиц будут иметь соответствующую информацию.
Подход к базе данных для каждого приложения помогает мне сохранять все более организованным, но я не знаю, как обновлять связанные таблицы во всех базах данных.
Итак, основной вопрос: какой из двух подходов вы рекомендуете?
Спасибо,
Хорхе Варгас.
Изменить 1:
Когда я говорю о невозможности иметь ссылочную целостность, это потому, что нет возможности иметь внешние ключи в таблицах, когда эти таблицы находятся в разных базах данных, и по крайней мере одна из таблиц для каждого приложения будет иметь внешний ключ для одного общих таблиц.
Изменить 2:
Ссылки на связанные вопросы:
- Конструкция SQL вокруг отсутствия ссылок на внешние ключи между базами данных
- Сохранение ссылочной целостности в нескольких базах данных
- Как спасти ссылочную целостность с помощью нескольких баз данных
Только второй имеет принятый ответ. Все еще не решили, что делать.
Ответ:
Я решил пойти с базой данных для каждого приложения, используя ссылки на междоменные базы данных для общей базы данных, добавляя представления к каждой базе данных, имитирующей таблицы в общей базе данных, и используя NHibernate в качестве моего ORM. В качестве системы членства я буду использовать asp.net один.
Я также использую триггеры и логические удаления, чтобы попытаться свести к минимуму число ID, которое я буду летать вокруг livin 'la vida loca без родителя. Усилия по разработке, необходимые для синхронизации баз данных, слишком велики, и выигрыш слишком мал (как вы все указали). Итак, я бы предпочел пробиться через осиротевшие записи.
Поскольку использование ORM и представлений было сначала предложено svinto, он получает правильный ответ.
Спасибо всем за то, что помогли мне с этим жестким решением.