Разработка базы данных для CRM User table для конкретного сценария - PullRequest
0 голосов
/ 03 января 2012

Я разрабатываю базу данных для нашей системы CRM и мне нужна помощь с таблицей пользователей CRM.

Типы пользователей:

  1. Администратор
  2. ПродажиReps from Branch 2
  3. Sales Reps from Branch 3
  4. Вход для клиентов

Теперь для этого сценария имеет смысл иметь всех пользователей в одной таблице и иметьатрибут таблицы с именем "тип", чтобы определить тип пользователя?ИЛИ я должен иметь отдельную таблицу для каждого типа пользователей?Также будет происходить обмен информацией между торговыми представителями.

Ответы [ 3 ]

1 голос
/ 03 января 2012

Зависит от ожидаемого количества пользователей.

Но обычно достаточно одного стола.


Если у вас будут миллиарды пользователей, возможно, вы сможете горизонтальное разбиение и создать несколько таблиц.

1 голос
/ 03 января 2012

Один стол должен быть в порядке.И я не согласен с тем, что количество пользователей действительно имеет большое влияние на его дизайн в этом случае.

По возможности, вы должны разрабатывать свои таблицы так, чтобы они имитировали реальную жизнь.Admin, Sales Rep и т. Д. - это просто описания / атрибуты того, кем они являются.В конечном счете, они все "Люди" ... или Пользователь.Поэтому наличие одной таблицы «Пользователь» с «Admin», «SalesRep» в качестве атрибутов имеет для меня смысл.Используйте подход «Тип», только если у пользователя может быть только один «Тип».Используйте отдельные столбцы, если они могут быть нескольких типов пользователей.То есть.один может быть SalesRepBranch2 и SalesRepBranch3 одновременно.Можно подумать о нормализации этого еще дальше.

1 голос
/ 03 января 2012

Как правило, я обычно хожу с одной User таблицей с Type, связанной с ней.Если у вас есть дополнительные атрибуты Sales Rep, которые вы хотите сохранить, создайте таблицу SalesRep с внешним ключом обратно в таблицу User.Затем создайте представление, объединяющее User и SalesRep, чтобы оно выглядело логически, как будто есть просто таблица usvSalesRep, которая имеет все атрибуты, необходимые для торговых представителей.

Но этово многом зависит от объема данных и загрузки транзакций, поэтому дополнительная информация, которую вы можете предоставить, полезна.

...