#mysql
#mysql
Вопрос:
Я читал ответы на некоторые похожие вопросы, но это не совсем помогает мне понять, принял ли я правильное решение.
У меня есть веб-приложение для управления продажами. Я решил, что у каждой компании должна быть своя база данных.
- Им необходимо создавать резервные копии своих собственных данных (это легко сделать, если у них есть своя база данных)
- Его довольно легко масштабировать, если я буду расти. Поскольку я могу перемещать базы данных на разные серверы.
Каковы некоторые плюсы и минусы наличия нескольких баз данных по сравнению с одной?
Ответ №1:
Если данные содержатся в каждой базе данных самостоятельно, то я думаю, что ваш подход является разумным.
Единственное, о чем я могу подумать, это то, что если вы внесете изменение схемы в одну / более таблиц, то вам придется применять его к базе данных каждого клиента. Это может быть преимуществом, если вы хотите обновить некоторые, а не другие.
Профессионал, которого вы упомянули о том, что его легко масштабировать, разделяя клиентов между экземплярами MySQL, является большим профессионалом. Некоторое время назад я разработал похожее приложение, которое использует точно такой же подход.
Ответ №2:
Полностью ли компании изолированы друг от друга? Что я имею в виду, возможно ли, что вы захотите запросить данные, которые охватывают более одной компании. Скажем, отчет о продажах за год, заказанный компанией? В этом случае больше подойдет одна база данных.
Кроме того, по мере добавления новых компаний вам придется добавлять новую базу данных, создавать таблицы, а затем модифицировать ваши прикладные программы для использования этих разных баз данных? Это звучит как кошмар для обслуживания.
Масштабирование с помощью MySQL не должно быть проблемой, поскольку доступны различные инструменты репликации.
Резервное копирование одной компании также не должно быть проблемой с небольшим количеством кода.
Комментарии:
1. Компании изолированы, я бы никогда не хотел запрашивать более одной компании. Когда я обновляю схемы, у всех баз данных один и тот же пользователь, поэтому я перебираю их и запускаю один и тот же запрос.
Ответ №3:
Допустим, у вас 10 000 клиентов, и вам нужно изменить структуру таблиц Customers, как вы собираетесь изменить все базы данных 10K?
Комментарии:
1. Прямо сейчас я показываю базы данных, просматриваю их и запускаю один и тот же запрос. Сейчас это работает довольно хорошо, поскольку у меня всего около 20 баз данных.