如何在ERD图中实现“可以”关系?

时间:2018-09-04 10:41:29

标签: php laravel polymorphism laravel-5.6 erd

我正在构建一个将在Laravel中实现的ERD。

我有三个实体:HikerHikeLeader和社交媒体Influencer

用户可以注册以上三种类型中的任何一种。但是,HikerHikeLeader可能会决定成为现有角色之外的影响者。因此,他们在个人资料上切换了一个按钮,就变成了HikerInfluencerHikeLeaderInfluencer

这些是示例属性:

Hiker:
    profile_photo

HikeLeader:
    logo

Influencer:
    instagram_handle

这就是我想到的ERD:

ERD Diagram

第一部分很简单,因为每个this问题的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将是HikerHikeLeader,但当新用户注册成为Influencer并且对远足一无所知。除非有影响力的对象能够变形为自身?

0 个答案:

没有答案