MySQL 关系。用户角色

标签 mysql foreign-keys user-roles

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

和表格:

用户

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


角色

编号 |姓名


  1. 病人
  2. 博士
  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/

相关文章:

php - Laravel Eloquent 如何创建不存在的关系?

mysql - 为什么 Sequelize 在 3120 条记录后暂停?

mysql - 获取最大百分比,输出与其关联的值,而不是百分比

python - (Django) (外键问题) model.person_id 不能为 NULL

ruby-on-rails-3 - RoR - 通过关联和迁移或 "by hand"(或脚手架)创建的外键?

python - Django 上的用户角色架构

php - 使用 PHP $_POST 从另一个 PHP 脚本的 echo 表单获取输入

mysql - 无法在mysql表上创建外键

angular - 如何根据用户角色显示/隐藏元素 Angular 4

php - 以编程方式为特定用户角色禁用税收