问题描述
我最近在大学里做了一次有关规范化数据库的讲座,但是由于我们在线,所以我真的不能问很多问题,所以我在这里。
有人可以告诉我我是否在正确地进行转换,否则我会在哪里误入歧途?
任务:
我的解决方案:
UNF
# Patient Nos
Patient Name
Ward Nos
Ward Name
bed Name
# Drug Number
(Drug Name)
(Description)
(Dosage)
(Method)
(Units Given)
(Start Date)
(Finish Date)
1NF
# Patient Nos
Patient Name
Ward Nos
Ward Name
bed Name
# Patient Nos
# Drug Number
Drug Name
Description
Dosage
Method
Units Given
Start Date
Finish Date
2NF
# Patient Nos
Patient Name
Ward Nos
Ward Name
bed Name
# Patient Nos
# Drug Number
Drug Name
Description
# Patient Nos
Dosage
Method
Units Given
Start Date
Finish Date
3NF
# Patient Nos
Patient Name
Ward Nos
Ward Name
bed Name
# Patient Nos
# Drug Number
Drug Name
Description
# Patient Nos
# Drug Number
Dosage
Method
Units Given
# Patient Nos
Start Date
Finish Date
解决方法
让我们从患者开始。关于病人的唯一信息就是他的电话号码和姓名。
Patient
_______
Patient Nos
Patient Name
接下来,我们有一个病房。根据该报告,一个病房可以有多个患者,而一个病房则可以容纳多个患者。我们使用外键为一对多关系建模。
Patient
_______
Patient Nos
Patient Name
Ward Nos (FK)
Ward
----
Ward Nos
Ward Name
最后,我们有了床。病房有多张床,而病人有一张床。由于我们只知道一张床是床号,因此我们会将其添加到患者表中,作为没有任何信息要定义的表的另一个外键。
Patient
_______
Patient Nos
Patient Name
Ward Nos (FK)
Bed Nos (FK)
我们对毒品有什么了解?
Drug
----
Drug Nos
Drug Name
Drug Description
我们还知道什么?剂量是药物与患者之间的关系。因此,让我们尝试一下。我假设开始和结束日期与药物有关,因为它与药物在同一行。
Dosage
------
Dosage Nos
Dosage Type
Dosage Method
Dosage Units Given
Dosage Start Date
Dosage End Date
Drug Nos (FK)
Patient Nos (FK)
现在,我们已将剂量与药物和患者相关。但是,我们尚未将患者与剂量捆绑在一起。一个患者可以有多个剂量,并且一个剂量可以属于一个以上的患者。当我们存在多对多关系时,我们使用联结表将它们联系在一起。
PatientDosage
-------------
PatientDosage Nos
PatientDosage Units Given
PatientDosage Start Date
PatientDosage End Date
Patient Nos (FK)
Dosage Nos (FK)
我们将给定的单位,开始日期和结束日期移至PatientDosage连接表,因为这些字段与患者和剂量有关。因此最终的剂量表将如下所示。
Dosage
------
Dosage Nos
Dosage Type
Dosage Method
Drug Nos (FK)