У меня есть эта схема Laravel - Жестокие отношения моделей, полиморфные или нет?
Все отношения здесь должны быть один к нулю/один. A user
может быть либо employee
, либо customer
. user_type
ENUM дает мне тип, поэтому я знаю, куда идти оттуда. Тогда employee
может быть либо basic
, либо manager
. Диктатор employee_type
дайте мне знать об этом.
Как я должен строить отношения «Ярко-образная модель»?
Предположим, у меня есть пользователь, который является сотрудником. Мне нужно получить общие поля из таблицы users
, но также необходимо получить общие поля из таблицы employees
. Мне нужен жесткий код и знаю, что когда user_type=emp
мне нужно выбрать из таблицы employees
? Что делать, если мне нужно добавить другой тип пользователя позже?
UPDATE
ли это имеет смысл изменить схему в чем-то проще?
Моя проблема заключается в том, что при использовании, как это было предложено, полиморфные отношения я бы в конечном итоге что-то вроде этого:
$ пользователя = новый User :: userable() -> Применяемый() -> ...
Будет ли схема, в которой я удаляю таблицу сотрудников, и у меня есть employee_managers и employee_basics, связанные с таблицей пользователей?
может быть все, что вам нужно всего три таблицы, пользователи, типы, функции? – mdamia
@mdamia Я получаю таблицу пользователей. Таблица 'types' будет содержать что-то вроде« customer, employee_manager, employee_basic ». Как насчет таблицы 'functions'? – Cristian
Таблица Funtions представляет собой комбинацию из трех других таблиц. – mdamia