Я строю ERD, который буду внедрять в Laravel.
У меня есть три лица: Hiker
, HikeLeader
и социальные медиа Influencer
,
Пользователь может зарегистрироваться как любой из трех указанных выше типов. Тем не менее, Hiker
или же HikeLeader
может решить стать влиятельными в дополнение к их существующим ролям. Таким образом, они переключают кнопку на своем профиле, и они становятся Hiker
а также Influencer
или же HikeLeader
а также Influencer
,
Это пример атрибутов:
Hiker:
profile_photo
HikeLeader:
logo
Influencer:
instagram_handle
Вот что я имею в виду для ERD:
Первая часть проста как User
будет иметь userable
метод согласно этот вопрос.
Итак User
будет так:
User:
id
email
password
userable_id // this will be the id from the Hike, HikeLeader or Influencer tables.
userable_type // this will be class type Hike, HikeLeader or Influencer.
Если я принимаю решение стать влиятельным лицом:
Influencer:
instagram_handle
influencerable_id
influencerable_type
Это прекрасно работает. Тем не менее, это работает только в том случае, если существующие пользователи хотят стать влиятельными influencerable_type
будет Hiker
или же HikeLeader
но НЕ когда новый пользователь регистрируется, чтобы стать Influencer
и ничего не знает о походах. Разве объект влияния может трансформироваться в себя?
Задача ещё не решена.
Других решений пока нет …