2015-08-12 2 views
0

У меня есть 5 таблиц в моей базе данных. Это пользователи, сотрудники, клиенты, менеджеры, manager_members.CakePHP Associate 5 Models

Таблица пользователей содержит только сведения об учетной записи: id, имя пользователя, пароль, last_login, статус.

В команде manager_members содержатся идентификаторы и местоположения менеджера.

Таблицы сотрудников и клиентов содержат общую информацию о пользователе: имя, возраст, пол и т. Д. Эти две таблицы также содержат другое имя столбца user_id.

Таблица менеджеров содержит общую информацию о менеджере: имя, возраст, пол и т. Д. Он также содержит 2 столбца user_id и manager_member_id.

Мой вопрос: я делаю правильную работу по созданию базы данных с помощью внешних ключей?

Я просто выпекаю свои модели всякий раз, когда создаю стол.

Пока что я вижу, являются:

  1. Пользователи hasMany менеджер, персонал, клиенты
  2. Менеджер belongsTo пользователя, менеджер belongsTo ManagerMember
  3. Персонал belongsTo Пользователь
  4. belongsTo Клиент Пользователь
  5. ManagerMember hasMany Manager

Не уверен, что номер 5 верен.

ответ

0

Я бы сделал несколько небольших настроек вашей настройки только to match with the CakePHP conventions.

Таблицы db, которые вы хотите.

users, 
staff, 
customers, 
managers, 
managers_users 

В CakePHP, в конвенции ForeignKey является особой с суффиксом _id.

  • Users hasMany Manager тогда вы хотите Managers.user_id.
  • Users hasMany Staff тогда вы хотите Staff.user_id.
  • Users hasMany Customers затем Customers.user_id
  • Manager belongsTo User затем, без изменений.

You can read more about relationships on the book.

+0

Я последовал за эти 4 модели ассоциаций, и это работает! Я считаю, что таблица manager_users является избыточным. Спасибо! – mark

+0

Рад, что вы его отсортировали –