Сценарий пользователя базы данных с несколькими типами пользователей - PullRequest
1 голос
/ 01 августа 2011

Я проектирую базу данных для проекта Yii, по сценарию пользователь будет ТОЛЬКО одного из следующих типов: сотрудник, компания и владелец бизнеса (т.е. владельцы, которые управляют компаниями и сотрудниками - супер администратор - я сломалотношения многие ко многим, поэтому я называю таблицу "business_owner_person").Ниже показано, как я спроектировал свою базу данных в MySQL:

USER

  • id,
  • имя пользователя,
  • пароль,
  • active

COMPANY

  • id,
  • name,
  • contact_no,
  • contact_name,
  • адрес ...
  • user_id (FK)

СОТРУДНИК

  • id,
  • first_name,
  • фамилия,
  • адрес,
  • электронная почта ...
  • company_id (FK)
  • user_id (FK)

BUSINESS_OWNER_PERSON

  • id,
  • name,
  • email,
  • position ...
  • user_id (FK)

Мне просто интересно, есть ли лучший / эффективный способ разработать этот сценарий, чтобы у Yii не было проблем с получением правильной дополнительной информации для пользователя.

1 Ответ

0 голосов
/ 01 августа 2011

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

Разделение пользователя - это хорошо, так как любой из этих типов людей может быть пользователем. Я бы, вероятно, поместил бы общую информацию, имя, адрес электронной почты в поле пользователя, возможно, даже адрес и должность.

Тогда, похоже, вы хотите, чтобы пользователь мог иметь одну или несколько ролей, где роль контролирует их уровень доступа. Это может быть так же просто, как начать со столбцов role_id в таблице БД, или это может быть отдельная таблица user_id, role_id.

Теперь, несмотря на все сказанное, трудно вносить предложения без дополнительной информации. Вам нужно изолировать пользователей по компании? Будет ли много компаний? Сколько владельцев бизнеса вы хотите иметь?

...