在这种情况下,我想问一下最好的策略(使用MySQL DB):
我有一个用户模型/表 . 用户可以是3种不同的类型:管理员,所有者和 Worker .
-
所有者拥有多个地点
-
位置有很多 Worker
-
Worker 属于一个位置
1st Option I see:
为所有者和工作人员扩展用户模型是否有意义,因为他们有共同的字段并在用户表中添加“角色”字段?
为Owner和Worker创建2个其他表是否正确?
在这种情况下,雄辩如何处理关系?
2nd option (easier but...):
管理员,所有者, Worker 是3种不同的模型/表
然后我想得到如下数据:
-
$location->owner() //为此位置获取角色为'owner'的用户
-
$location->workers() //为此位置获取角色为'workers'的用户
-
$owner->workers() //获取与所有者相关的 Worker
1 回答
最后,我用过:
用户表
角色表
role_user透视表
位置表
location_user透视表
在User模型中,一些queryScope方法按角色检索用户:
很容易 .