Разработка приложения с одной или несколькими базами данных

#mysql

#mysql

Вопрос:

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

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

  1. Им необходимо создавать резервные копии своих собственных данных (это легко сделать, если у них есть своя база данных)
  2. Его довольно легко масштабировать, если я буду расти. Поскольку я могу перемещать базы данных на разные серверы.

Каковы некоторые плюсы и минусы наличия нескольких баз данных по сравнению с одной?

Ответ №1:

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

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

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

Ответ №2:

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

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

Масштабирование с помощью MySQL не должно быть проблемой, поскольку доступны различные инструменты репликации.

Резервное копирование одной компании также не должно быть проблемой с небольшим количеством кода.

Комментарии:

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

Ответ №3:

Допустим, у вас 10 000 клиентов, и вам нужно изменить структуру таблиц Customers, как вы собираетесь изменить все базы данных 10K?

Комментарии:

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