我正在为Yii项目设计一个数据库,该场景是用户将只有以下类型之一:员工,公司和企业所有者(即管理公司和员工的所有者 - 超级管理员 - 我打破了多对多的关系,这就是我称之为“business_owner_person”的原因。以下是我在MySQL中设计数据库的方法:
我只是想知道是否有更好/更有效的方法来设计这个场景,以便Yii不会有问题来为用户获取正确的附加信息。
答案 0 :(得分:0)
如果不了解更多有关业务的信息,很难提出建议,但似乎有太多冗余信息。
分割出用户是好的,因为这些类型的人中的任何一个都可以是用户。我可能会将公共信息,姓名,电子邮件放入用户字段,甚至可能是地址和位置。
然后您想要的是用户可以拥有一个或多个角色,其中角色控制其访问级别。这可以很简单,从数据库表中的role_id列开始,或者它可以是一个单独的表,user_id,role_id。
现在,尽管如此,如果没有更多信息,很难提出建议。您是否需要按公司隔离用户?会有很多公司吗?你有多少企业主在看?