我有 3 种类型的用户角色:患者、医生、药剂师
和表格:
用户
编号 |姓名 |姓 |用户名 |密码 |等等..
角色
编号 |姓名
- 病人
- 博士
- 药剂师
用户角色
编号 |用户 ID | role_id
我想实现以下表格:doctor_info、patient_info、pharmasist_info。
例如:
医生信息
编号 |经验 |资质 | user_id
我应该使用什么关系来绑定(bind)用户与医生信息、患者信息、药剂师信息以及如何正确实现?
最佳答案
假设每个表中的所有 id 列都是主键。
用户: 身份证,姓名,...
角色: 身份证、姓名
用户角色: id, user_id, role_id(使user_id成为唯一键,这样1个用户只能有1个角色)
医生信息: id, user_id, ...(也使 user_id 成为 UNIQUE 键,因此 1 个用户只能是 1 个医生)
患者信息: 类似于 doctor_info
药剂师信息: 类似于 doctor_info
(可选)如果 1 个用户有 1 个角色并且 1 个角色属于多个用户,您可以完全删除 users_roles
表,只需在 中添加
表。role_id
用户
一个问题是您可以拥有:1 个用户可以是一名医生、一名患者和一名药剂师,以及您的表格结构。您必须在代码中添加一些验证以确保它不会发生。
关于MySQL 关系。用户角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37865902/