Mysql 具有多种用户类型的数据库用户场景

Mysql 具有多种用户类型的数据库用户场景,mysql,database-design,yii,normalization,Mysql,Database Design,Yii,Normalization,我正在为一个Yii项目设计一个数据库,该场景是一个用户将仅为以下类型之一:员工、公司和企业所有者人员(即管理公司和员工的所有者-超级管理员-我打破了多对多关系,这就是为什么我称该表为“业务\所有者\人员”)。下面是我如何在MySQL中设计数据库的: 使用者 身份证 用户名 密码 活跃的 公司 身份证 名字 联络电话: 联系人姓名: 地址 用户id(FK) 受雇者 身份证 名字 姓 地址: 电子邮件 公司id(FK) 用户id(FK) 企业所有人 身份证 名字 电子邮件 位置 用户i

我正在为一个Yii项目设计一个数据库,该场景是一个用户将仅为以下类型之一:员工、公司和企业所有者人员(即管理公司和员工的所有者-超级管理员-我打破了多对多关系,这就是为什么我称该表为“业务\所有者\人员”)。下面是我如何在MySQL中设计数据库的:

使用者
  • 身份证
  • 用户名
  • 密码
  • 活跃的
公司
  • 身份证
  • 名字
  • 联络电话:
  • 联系人姓名:
  • 地址
  • 用户id(FK)
受雇者
  • 身份证
  • 名字
  • 地址:
  • 电子邮件
  • 公司id(FK)
  • 用户id(FK)
企业所有人
  • 身份证
  • 名字
  • 电子邮件
  • 位置
  • 用户id(FK)

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

在不了解更多业务的情况下很难提出建议,但您似乎有太多多余的信息

分离用户是很好的,因为这些类型的人都可以是用户。我可能会把常用信息、姓名、电子邮件输入用户字段,甚至可能是地址和位置

然后,您希望用户可以拥有一个或多个角色,该角色控制其访问级别。这可能很简单,可以从DB表中的role\u id列开始,也可以是一个单独的表,user\u id,role\u id


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

企业主作为其承包商处理许多公司,每个承包商都有许多员工,客户想将承包商称为公司,员工和公司都有一个用户,我肯定会在用户表中添加角色,关系将是一对多。至于企业主,他们将拥有不同的账户,每个企业主都有不同的职位,如项目经理、主管,但他们都是管理员,功能略有不同。我喜欢你关于在用户表中添加更多细节的建议。