【问题标题】:Database user scenario with multiple type of user具有多种用户类型的数据库用户场景
【发布时间】:2011-10-17 03:00:06
【问题描述】:

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

用户

  • 身份证,
  • 用户名,
  • 密码,
  • 有效

公司

  • 身份证,
  • 姓名,
  • contact_no,
  • 联系人姓名,
  • 地址...
  • user_id (FK)

员工

  • 身份证,
  • 名字,
  • 姓氏,
  • 地址,
  • 电子邮件...
  • company_id (FK)
  • user_id (FK)

BUSINESS_OWNER_PERSON

  • 身份证,
  • 姓名,
  • 电子邮件,
  • 位置...
  • user_id (FK)

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

【问题讨论】:

    标签: mysql database-design yii normalization


    【解决方案1】:

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

    拆分用户是好的,因为这些类型的任何人都可以成为用户。我可能会将常用信息、姓名、电子邮件放入用户字段,甚至可能是地址和职位。

    那么看起来您想要的是用户可以拥有一个或多个角色,其中角色控制他们的访问级别。这可以很简单,从 DB 表中的 role_id 列开始,也可以是单独的表,user_id,role_id。

    现在,说了这么多,如果没有更多信息,很难提出建议。您需要按公司隔离用户吗?会有很多公司吗?您打算拥有多少位企业主?

    【讨论】:

    • 企业主将很多公司作为他们的承包商处理,每个承包商都有很多员工,客户想将承包商称为公司,员工和公司将各有一个用户,我一定会添加角色在用户表中,关系将是一对多。至于企业主,他们将拥有不同的帐户,每个企业主都有不同的职位,如项目经理、主管,但他们都是管理员,功能略有不同。我喜欢您向用户表添加更多详细信息的建议。
    猜你喜欢
    • 2015-02-27
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 2014-12-17
    • 2012-12-04
    • 2013-05-02
    • 1970-01-01
    • 2021-09-24
    相关资源
    最近更新 更多