具有多种类型用户的数据库用户方案

时间:2011-08-01 00:51:07

标签: mysql database-design yii normalization

我正在为Yii项目设计一个数据库,该场景是用户将只有以下类型之一:员工,公司和企业所有者(即管理公司和员工的所有者 - 超级管理员 - 我打破了多对多的关系,这就是我称之为“business_owner_person”的原因。以下是我在MySQL中设计数据库的方法:

USER

  • ID
  • 用户名,
  • 密码,
  • 活性

COMPANY

  • ID
  • 名,
  • contact_no,
  • CONTACT_NAME,
  • 地址...
  • user_id(FK)

EMPLOYEE

  • ID
  • 如first_name,
  • 姓,
  • 地址,
  • 电子邮件...
  • company_id(FK)
  • user_id(FK)

BUSINESS_OWNER_PERSON

  • ID
  • 名,
  • 电子邮件,
  • 位置...
  • user_id(FK)

我只是想知道是否有更好/更有效的方法来设计这个场景,以便Yii不会有问题来为用户获取正确的附加信息。

1 个答案:

答案 0 :(得分:0)

如果不了解更多有关业务的信息,很难提出建议,但似乎有太多冗余信息。

分割出用户是好的,因为这些类型的人中的任何一个都可以是用户。我可能会将公共信息,姓名,电子邮件放入用户字段,甚至可能是地址和位置。

然后您想要的是用户可以拥有一个或多个角色,其中角色控制其访问级别。这可以很简单,从数据库表中的role_id列开始,或者它可以是一个单独的表,user_id,role_id。

现在,尽管如此,如果没有更多信息,很难提出建议。您是否需要按公司隔离用户?会有很多公司吗?你有多少企业主在看?