【问题标题】:MySQL relationships. User rolesMySQL 关系。用户角色
【发布时间】:2016-10-18 08:48:28
【问题描述】:

我有 3 种用户角色:患者、医生、药剂师

还有表格:

用户

id |姓名 |姓氏 |用户名 |密码 |等等。


角色

id |姓名


  1. 病人
  2. 医生
  3. 药剂师

users_roles

id |用户 ID | role_id


我想实现诸如:医生信息、病人信息、药剂师信息之类的表。

例如:

医生信息

id |经验 |资质 | user_id

我应该使用什么关系来将用户与医生信息、病人信息、药剂师信息联系起来以及如何正确实施?

【问题讨论】:

  • 首先您必须首先考虑 1 对 1、1 对多或多对多。这些取决于要求。然后我可以帮你解决限制。
  • 我认为我需要一对一的关系,所以 1 个用户(医生)只能有 1 个医生信息
  • userrole 怎么样? 1 个用户 1 个角色,但 1 个角色多个用户?

标签: mysql foreign-keys user-roles


【解决方案1】:

假设每个表中的所有 id 列都是主键。

用户: 身份证,姓名,...

角色: 身份证、姓名

用户角色: id, user_id, role_id (使 user_id 唯一键,所以 1 个用户只能有 1 个角色)

医生信息: id, user_id, ...(也使 user_id 成为唯一键,所以 1 个用户只能是 1 个医生)

患者信息: 类似于医生信息

药剂师信息: 类似于医生信息

(可选)如果 1 个用户有 1 个角色并且 1 个角色属于多个用户,您可以完全删除 users_roles 表,并在 users 表中添加 role_id

一个问题是您可以拥有:1 个用户可以是医生、患者和药剂师,同时您的表格结构也可以。您必须在代码中添加一些验证以确保它不会发生。

【讨论】:

    猜你喜欢
    • 2015-05-18
    • 2017-04-16
    • 2017-05-17
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多