@null_object

Как правильно распределить информацию по таблицам?

Здравствуйте! Проектирую систему в которой будет сайт, cms для него, а так же crm. Остановился на варианте, где сайт + cms на одном хосте, а crm на другом (ранее был вариант сделать монолитное приложение сайт+cms+crm в одном).

На сайте+cms будет таблица с пользователями, а в crm будут лиды, контакты и работники (лиды через время конвертируются в контакты, а работники - штат сотрудников, которые пользуются crm), то есть в общей сложности 4 таблицы только на пользователей!

Таким образом встает вопрос: как это правильно поделить? В моём понимании 4 таблицы, где много одинаковых полей - это не очень нормально.

UPD.
На сайте + cms будут пользователи с 3 ролями: клиенты, редакторы, админы. После регистрации на сайте клиенты попадают в таблиц контакты crm системы, там она почти полностью дублируется, но добавляется несколько полей.
В таблицу лидов попадают любые данные клиентов (номер телефона, почта и т.д.), но не всегда есть ФИО. В конечном итоге лид конвертируется в клиента, где дополняется недостающая информация.
Crm администрируют работники с ролями: менеджер, админ (больше, эти взяты для примера).

Если кто-нибудь сталкивался, подскажите, пожалуйста!
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev
software engineer
Ну а как по таким данным вам что-то ответить?
Откуда мы знаем что именно вы планируете в ваших таблицах делать?
Откуда взялось много одинаковых полей, если у вас везде разные данные?

1. Можете привести нормальный пример структуры таблиц, тогда можно будет подумать.
2. Посмотрите ЛЮБУЮ CMS, как там сделано


В моём понимании 4 таблицы, где много одинаковых полей - это не очень нормально.

Плохо, это если много одинаковых данных, а просто одинаковые поля - ну есть миллионы примеров баз данных с логами, где каждый месяц начинается новая таблица, с такими же самыми полями, и это нормально.
Ответ написан
@jazzus
users
roles
user_role (many to many)
поля профиля в profiles в перемешку для всех ролей или например client_profile для клиентов (has one)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы