Как правильно распределить информацию по таблицам?
Здравствуйте! Проектирую систему в которой будет сайт, cms для него, а так же crm. Остановился на варианте, где сайт + cms на одном хосте, а crm на другом (ранее был вариант сделать монолитное приложение сайт+cms+crm в одном).
На сайте+cms будет таблица с пользователями, а в crm будут лиды, контакты и работники (лиды через время конвертируются в контакты, а работники - штат сотрудников, которые пользуются crm), то есть в общей сложности 4 таблицы только на пользователей!
Таким образом встает вопрос: как это правильно поделить? В моём понимании 4 таблицы, где много одинаковых полей - это не очень нормально.
UPD.
На сайте + cms будут пользователи с 3 ролями: клиенты, редакторы, админы. После регистрации на сайте клиенты попадают в таблиц контакты crm системы, там она почти полностью дублируется, но добавляется несколько полей.
В таблицу лидов попадают любые данные клиентов (номер телефона, почта и т.д.), но не всегда есть ФИО. В конечном итоге лид конвертируется в клиента, где дополняется недостающая информация.
Crm администрируют работники с ролями: менеджер, админ (больше, эти взяты для примера).
Если кто-нибудь сталкивался, подскажите, пожалуйста!
Ну а как по таким данным вам что-то ответить?
Откуда мы знаем что именно вы планируете в ваших таблицах делать?
Откуда взялось много одинаковых полей, если у вас везде разные данные?
1. Можете привести нормальный пример структуры таблиц, тогда можно будет подумать.
2. Посмотрите ЛЮБУЮ CMS, как там сделано
В моём понимании 4 таблицы, где много одинаковых полей - это не очень нормально.
Плохо, это если много одинаковых данных, а просто одинаковые поля - ну есть миллионы примеров баз данных с логами, где каждый месяц начинается новая таблица, с такими же самыми полями, и это нормально.
Таблицы employee_positions и lead_statuses - справочники, которые скорее всего меняться не будут
Таблица communicatios - контакты пользователя (телефон, email и т.д.)
Таблица departments - отделы, которые могут иметь древовидную структуру
Самый большой вопрос в таблицах leads и contacts, сначала данные попадают в leads, через какое-то время они могут перейти в contacts и расшириться (например: помимо ФИО, добавится ещё дата рождения).
Подойдет ли такая структура? При копировании из leads в contacts слишком много работы придется сделать