Есть база данных с кучей таблиц.
Нужно ввести дополнительный разрез, чтобы отделять данные одной фирмы от другой. Данные разных фирм между собой никак не связаны.
Я вижу несколько путей:
1. Использовать префикс фирм в существующих колонках идентификаторов id всех таблиц.
2. Добавить во все таблицы новую колонку "идентификатор фирмы" firm_id, по значению которой будет разделение.
3. Для каждой фирмы использовать отдельные таблицы, в именах которых будет присутствовать идентификатор фирмы.
4. Для каждой фирмы использовать отдельную базу данных.
У каждого решения есть свои плюсы и минусы. Посоветуйте какое выбрать? Может есть вариант получше?
Естественно новая база. Клиент захочет забрать данные - пожалуйста, как вы их потом с разделителями ему будете отдавать (можно, конечно, но лишняя работа)
(113) О какой скорости идет вообще речь.
любой вариант 1-3 это как минимум переписывание всех отчетов по этим базам с отладкой с ошибками с заложеными граблями и.т.д. и отвечать за это придеться уже тебе.
опять же сейчас вполне себе дублирование клиентов никак не влияет если оно будет в разных базах
если это же дублирование будет в рамках одной базы это уже проблема.
Аудитор фирмы 1 попросит базу для анализа. Как отдать, если в базе несколько фирм?
новые базы
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший