首页 文章

在MySQL中创建关系[暂停]

提问于
浏览
-2

目前,我有3个表位于1个数据库中 .

  • 表#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

表1中的 ID 列( patients )设置为 PRIMARY KeyUNIQUE index,并设置为 INT(11) .

显然,名为 patients 的表将容纳 unique 患者 .

名为 checkups 的表将保存在各种检查后收集的数据 . 对于相同的 patient ,此表可以包含多行,每行具有不同的字段值 .

Example

  • patient#43在检查表中可以有4行数据(4个检查) .

  • patient#21在检查表中可以有1行数据(1个检查) .

  • patient#78在检查表中可以有11行数据(11个检查) .

...等等等等 .

名为 surgery 的表格将保存有关手术安排的患者数据(何时,何地等) . 与 checkups 表类似,每个患者在此表中可以有多行 .

Later goal

我打算在一个应用程序中连接和交互这个数据库,我希望以这样一种方式链接表格:当我在应用程序中选择一个病人(病人将在 DBGrid 中看到)时,他的所有行(检查)来自 checkups 表将显示在另一个 DBGrid 中,他的所有手术时间表将同样显示在另一个 DBGrid 中 .

当我从列表中选择不同的患者时,应该发生同样的事情 .

Question/issue:

如何以实现最终结果的方式链接这些表/列(如上所述)?我已经开始浏览MySQL手册,但我似乎无法理解那里解释的关系 . 具体为1对1,1对多,识别和非识别种类 . 我应该使用哪些目标?

我正在使用mysql 8.0.3(来自他们网站的社区版)设置为InnoDB并通过Workbench进行交互 . 刚刚打开了MySQL Models选项卡并修改了EED Diagrams

我很欣赏一个写得很好的例子,教程或其他一些阅读源,除了关于这个的mysql手册部分 .

1 回答

  • 1

    我认为您不必担心用于描述关系的“词汇” .

    逻辑非常简单:

    • A "checkup"有一名病人 . 因此它应该与患者具有外键关系 .

    • A "surgery"有一名病人 . 所以它应该与患者有一个非关系的非关系 .

    您正在实现0/1-many关系并不重要 . 对业务实体的理解决定了您的需求 .

相关问题