MySQL 关系。用户角色
MySQL relationships. User roles
我有 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 结构。您必须在代码中添加一些验证以确保它不会发生。
我有 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 结构。您必须在代码中添加一些验证以确保它不会发生。