Я создаю приложение для продаж и выставления счетов для компании. Приложение на PHP MYSQL, но, думаю, это не должно иметь большого значения.
Структура приложения выглядит следующим образом:
файлы веб-сайта : .php,, .htm, изображения и css
база данных : содержит более 20 таблиц
Приложение в настоящее время находится на рассмотрениииспользуется компанией и двумя другими дочерними компаниями (в основном бета-тестирование).Поскольку база пользователей мала, я вручную копирую файлы веб-сайта и базу данных, чтобы настроить приложение для использования новой компанией.Я ищу способ сделать приложение более «масштабируемым» без необходимости выполнять «масштабирование» вручную (то есть я не хочу вручную управлять тремя различными наборами файлов и баз данных), поскольку код нейтрален в отношении компании, а базы данных содержатИнформация о компании, мне нужно будет воссоздать базу данных только тогда, когда пользователь запрашивает новую компанию для настройки.Существует несколько способов создания базы данных для новой компании.
Во время выполнения я могу создать новую базу данных с 20+ таблицами, используя CREATE DATABASE
Во время выполнения я могу создать дополнительные 20+ таблиц с названием компании в качестве префикса для таблиц, используя CREATE TABLES
Я могу добавить столбец компании для всехмои таблицы, а затем продолжить добавление информации, как и раньше.
Мне нравится новый метод базы данных, потому что резервное копирование и обслуживание будет простым, вероятно, он будет немного более безопасным, поскольку хакер будет толькобыть в состоянии получить доступ к деталям одной компании (вероятно ...).Эта опция не будет работать на виртуальном хостинге с ограничением количества баз данных.
Второй вариант означает, что я могу создать все в одной базе данных.Но этот вариант немного более «общий».
Я бы не стал использовать третий вариант из-за проблем с блокировкой на уровне таблицы в MySQL (я не использую InnoDb для всех своих таблиц).
Так что мой выбор между вариантом 1 и 2. Разработчики, которые управляли финансовыми приложениями, пожалуйста, посоветуйте, как только закончится фаза бета-тестирования, база использования увеличится, и я не хочувручную изменить то же самое в 10 базах данных и наборах файлов.Что будет лучше всего делать?