mysql - 如何区分在给定时刻可以扮演相同角色的两个实体
问题描述
我正在对来自系统的数据进行建模。
我有一个患者实体。该实体可以连接到该站点以检索他的医疗数据。
我还想为有权在网站上操作的人(管理员、主管和输入操作员)创建一个 USER 实体。
由于患者可以连接到站点并检索有关他的信息,并且服务成员可以做同样的事情,在这种情况下,患者实体不会与用户实体混淆吗?
还是我们应该区分这两个实体?
谢谢你。
我创建了实体 PATIENT,但我对此表示怀疑。
解决方案
出于定义数据模型的目的,您似乎遇到了患者是用户的情况。
这只是建议有两个独立的实体,用户 ID 是患者的属性。所以:
create table users (
user_id int auto_increment primary key,
-- information about users
. . .
);
create table patients (
patient_id int auto_increment primary key,
user_id int,
-- information about patients
. . .
constraint fk_patients_user_id foreign key (user_id) references users(user_id)
);
然后,您可以开始定义角色,例如“查看者”、“编辑者”、“维护者”,并提供一个将角色分配给用户的表格——并且只分配给用户。对于患者,默认角色是“仅查看我自己的记录”。其他人可能有更广泛的角色。
推荐阅读
- php - 无法从 Laravel 中的数据透视表中获取所有数据
- swift - 使用 Coordinator Pattern 和 Storyboard 初始化 UINavigationController
- vb.net - 通过 NuGet 添加 CefSharp 会导致所有引用丢失
- autosar - 如何将布尔变量编码为 16 位编码值(汉明距离)
- dll - 如何避免使用 MinGW64 编译`msvcrt.dll`?
- android - 两个recyclerview 一横一竖
- c++ - 要求澄清将类实例放入数组并使用虚拟方法
- javascript - 基于对象数组中的条件的俱乐部对象
- node.js - 使用 nodejs 重定向到 https 并在 Heroku 中表达
- ssrs-2012 - 如何使用 SSRS 将数据从一个数据集附加到主数据集