2012-01-03 4 views
0

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

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

  1. администратора
  2. торговые представители из отделения 2
  3. торговые представители из отделения 3
  4. Клиент Войти

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

+0

Можете ли вы предоставить дополнительную информацию? На данный момент этот вопрос довольно расплывчатый. –

ответ

1

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

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

+1

Существует менее 100 пользователей и менее 1000 транзакций в день. SalesRep будет иметь некоторые дополнительные атрибуты, такие как количество продаж, которые они закрыли в этом и том же году, количество ставок и некоторые атрибуты производительности. – wackytacky99

+0

@ mvador99 - Отдельная таблица может вам понадобиться без проблемы, а затем :) – Eric

+0

внешние ключи для этих таблиц или наоборот :) –

1

Это зависит от количества ожидаемых пользователей.

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


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

+1

Её менее 1000 пользователей. Кажется, это одна таблица. Благодаря! – wackytacky99

1

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

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

Смежные вопросы