MySQL 关系。用户角色

MySQL relationships. User roles

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

和表格:

用户

编号 |姓名 |姓 |用户名 |密码 |等..


角色

编号 |名字


  1. 患者
  2. 医生
  3. 药剂师

users_roles

编号 | user_id | role_id


我想实现如下表格:doctor_info、patient_info、pharmasist_info。

例如:

doctor_info

编号 |经验 |资质 | user_id

doctor_info、patient_info、pharmasist_info应该用什么关系绑定用户,如何正确实现?

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

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

角色: 身份证、姓名

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

doctor_info: id, user_id, ...(也使 user_id UNIQUE 键,所以 1 个用户只能是 1 个医生)

patient_info: 类似于 doctor_info

pharmasist_info: 类似于 doctor_info

(可选)如果 1 个用户有 1 个角色并且 1 个角色属于多个用户,您可以完全删除 users_roles table,只需在 [=12] 中添加 role_id =] table.

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