mysql - 在 MySQL 中创建关系
问题描述
目前,我在 1 个数据库中有 3 个表。
- 表格1:
patients
- 表#2:
checkups
- 表3:
surgery
表 #1 ( patients
) 包含以下内容:
ID
First name
Last name
Born
Residence
Phone number
Date added*(to the database)*
表 #2 ( checkups
) 包含以下内容:
Column1
Column2
Column3
Column4
Column5
Column6
Column7
Column8
Column9
Column10
表 #3 ( surgery
) 包含以下内容:
Date
Clinique
Anesthesia
Comments
表ID
1( patients
) 中的列设置为PRIMARY Key
和 ,UNIQUE
索引设置为INT(11)
。
显然,命名的表patients
将包含独特的患者。
命名的表checkups
将保存各种检查后收集的数据。此表可以包含多行,每行具有不同字段值,用于同一患者。
示例:
- 患者 #43 在检查表中可以有 4 行数据(4 次检查)。
- 患者 #21 在检查表中可以有 1 行数据(1 次检查)。
- 患者 #78 在检查表中可以有 11 行数据(11 次检查)。
...等等等等。
命名的表surgery
将保存有关手术安排(时间、地点等)的患者数据。与checkups
表格类似,每个患者在此表格中可以有多行。
后期目标:
我计划在我正在开发的应用程序中连接该数据库并与之交互。我想以这样的方式链接表格,当我在应用程序中选择一个患者(患者将在 a 中可见)时,表格中的DBGrid
所有行(检查)checkups
都将显示在另一个中DBGrid
,并且他的所有手术时间表将类似地显示在另一个DBGrid
.
当我从列表中选择不同的患者时,也会发生同样的事情。
问题/问题:
我如何链接这些表/列以实现最终结果(如上所述)?我已经开始浏览 MySQL 手册,但我似乎无法理解那里解释的关系。特别是 1 到 1、1 到多个、识别和非识别类型。我应该使用哪些来实现我的目标?
我正在使用 mysql 8.0.3(他们网站上的社区版)设置为 InnoDB 并通过 Workbench 进行交互。刚刚打开 MySQL 模型选项卡并与 EED 图一起修改
除了mysql手册部分之外,我会很感激一个写得很好的例子、教程或其他一些可供阅读的资源。
解决方案
我认为您不必担心用于描述关系的“词”。
逻辑很简单:
- “检查”有一名患者。因此它应该
NULL
patientid
与患者具有非外键关系。 - 一个“手术”有一个病人。因此它应该
NULL
patientid
与患者具有非外键关系。
您正在实施 0/1-many 关系并不是很重要。对业务实体的了解决定了您需要什么。
推荐阅读
- python - Mongodb游标迭代慢
- awk - 使用 awk 计算行组数
- java - 从 Maven 多项目设置发布单个项目
- c# - 如何在登录表单后面为 WebClient.downloadstring 设置身份验证 cookie
- oracle - 在 oracle 中检查用户定义的数据类型的查询
- vb.net - 在TextBox VB.net中更改行间距
- powershell - 如何从 Azure DevOps 中的部署后批准/部署后门调用 Powershell 脚本
- python - 通过python中的给定路径更新不同深度的嵌套字典中的元素
- cplex - Cplex 找不到可行的解决方案
- python-3.x - 如何基于 string.contains 创建多列