gpt4 book ai didi

mysql - 数据库: `One to One` 与 `One to Many`

转载 作者:太空宇宙 更新时间:2023-11-03 10:39:30 29 4
gpt4 key购买 nike

注意:这不是库存控制系统。我只是想绘制给哪个患者服用哪种药物的 map 。我没有考虑多少药包等。只是一次用药事件

我对数据库关系突然感到困惑,即使在与他们合作多年之后也是如此。以下是我的情况。

我有一个名为patient 的表,它将保存患者的信息。我有另一个名为 medication 的表,其中包含为 patient 开的药物。我想找到关系,所以我问了以下问题。

  1. 一个病人可以开很多药吗? - 回答:是的
  2. 一种处方药可以有很多患者吗? - 回答:不(例如:你不能给病人服用扑热息痛,然后拿出来给别人喝)

我需要在 medication 表中创建 patient 的外键。我很困惑,因为我对第一个问题的回答告诉我它是一对多关系,而第二个答案告诉我它是一对一关系。

当我计划在medication 表中添加patient 的外键时,确切的关系是什么?

下面是我的结构

enter image description here

最佳答案

这在某种程度上取决于表格的结构。

示例 1

Patient:

PatientID Name
--------- ----
1 John
2 Matt

Patient_Medication:

PrescriptionID PatientID Name
-------------- --------- ------------
1 1 Antacid
2 1 Paracetamol
3 2 Asthma inhaler

您处于一对多关系中。患者 John 的处方表中可以有多种药物。

示例 2

Patient:

PatientID Name
--------- ----
1 John
2 Matt
3 Katie

Medication:

MedicationID Name
------------ ----
1 Antacid
2 Paracetamol
3 Asthma inhaler

Patient_Medication:

ID PatientID MedicationID
--- --------- ------------
1 1 (John) 1 (Antacid)
2 1 (John) 2 (Paracetamol)
3 2 (Matt) 3 (Asthma inhaler)
4 3 (Katie) 2 (Paracetamol)
5 3 (Katie) 3 (Asthma inhaler)

这种情况是一种多对多关系,其中许多患者可以服用多种药物,反之亦然。通常 Patient_Medication 称为联结表。

关于mysql - 数据库: `One to One` 与 `One to Many`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41217027/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com