Одна база данных или много? - PullRequest
9 голосов
/ 21 августа 2008

Я занимаюсь разработкой веб-сайта, который будет управлять данными для нескольких организаций. Данные не передаются между объектами, но они могут принадлежать одному и тому же клиенту. Клиент может захотеть управлять всеми своими объектами из единой «панели инструментов». Таким образом, я должен иметь одну базу данных для всего или держать данные разделенными на отдельные базы данных? Есть ли лучшая практика? Каковы положительные / отрицательные стороны для:

  • база данных для всего сайта (субъекта) имеет "идентификатор клиента", данные имеют "EntityId")
  • база данных для каждого клиент (данные имеют "entityID")
  • база данных для каждого субъекта (отношение база данных для клиента находится за пределами базы данных)

Несколько баз данных, похоже, будут иметь лучшую производительность (меньше строк и объединений), но могут в конечном итоге стать кошмаром обслуживания.

Ответы [ 11 ]

0 голосов
/ 21 августа 2008

Один хороший аргумент в пользу их хранения в отдельных базах данных - это то, что его легче масштабировать (вы можете просто иметь несколько установок сервера с распределением клиентских баз данных по серверам).

Другим аргументом является то, что после входа в систему вам не нужно добавлять дополнительную проверку «где» (для идентификатора клиента) в каждом из ваших запросов.

Итак, главная БД, поддерживаемая несколькими БД для каждого клиента, может быть лучшим подходом,

...