Используйте одну большую базу данных или используйте одну базу данных для каждого клиента - PullRequest
3 голосов
/ 07 декабря 2010

В настоящее время я работаю над онлайн-приложением для строительных материалов.Компании могут войти на наш веб-сайт, а затем использовать веб-приложение.

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

Нам нужно запустить прибл.два раза в год скрипт обновления для db maintanance.

Преимущество, которое я вижу, состоит в том, что, когда клиент хочет выйти, мы удаляем его базу данных и чем она заканчивается.

Когда я хочу добавить нового клиента, я должен заполнить базу данных прибл.1.000.000 уникальных записей для этого конкретного клиента, потому что у каждого клиента разные цены / материалы.

Для резервного копирования я использую скрипт MySQL Dump, который создает файл * .sql для каждой базы данных, который я загружаю каждый день.

Какое у вас мнение и что вы думаете?Одна большая база данных или база данных для каждого клиента?

Я использую MySQL с ASP.NET/C#...

Ответы [ 4 ]

3 голосов
/ 07 декабря 2010

Я не хочу делать предложение, потому что там слишком много переменных.

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

Итак, идея осуществима,Моя работа не связана с управлением БД, но я помню, что мы многое делаем в области автоматизации и онлайн-инструментов.Резервное копирование и управление БД осуществляется командой.

В конечном счете, вы можете заставить работать более 100 развертываний, но вы захотите начать инвестировать в разработку утилит и инструментов, которые помогут автоматизировать резервное копирование и / или управление БД,

В идеале ничего (управление БД) не следует делать вручную.Кроме того, строки подключения должны быть абстрагированы от данного развертывания веб-приложения.

3 голосов
/ 07 декабря 2010

Но теперь он становится все больше и больше (более 100), поэтому у нас теперь есть 100 баз данных для управления

Я думаю, что у вас есть ответ прямо.

1 голос
/ 07 декабря 2010

Приходится соглашаться с @Hogan - затраты на управление многими базами данных, вероятно, далеки от идеала, особенно если вам когда-нибудь понадобится внести изменения в схему и т. Д.

Тем не менее, если выиспользовать одну базу данных, возможно, вам когда-нибудь понадобится выделить данные конкретного клиента в отдельную базу данных / сайт?Если это вероятно, сколько времени потребуется, чтобы провести это разделение?

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

Кроме того, схемы абсолютно одинаковы для всех из существующих 100+ баз данных?Если нет, то, возможно, вам будет очень больно, если вы решите перенести существующие данные в одну базу данных.

Обновление - Кстати, все вышеперечисленное немного обобщенно, но сложночтобы быть конкретным, не зная больше об объеме данных, трафика и т. д. в использовании.(Например: если у вас когда-либо был сайт с высоким спросом для клиента, было бы тривиально разместить его на своем собственном сервере БД, если вы использовали базу данных для каждого клиента.)

0 голосов
/ 07 декабря 2010

Я согласен с @Hogan и @middaparke ... если схемы совпадают, вы должны указать это в одном случае.

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...