关系数据库紧急人员+联系电话?

时间:2013-05-02 16:18:06

标签: sql database normalization relational

我正在尝试设计一个规范化的关系数据库,其中患者有 * 联系人 * (在紧急情况下联系的人)。我还有一个名为contact_num的表,它将patient_id作为外键。但是,我如何实施一个可能/可能不是另一个病人的紧急联系人(有电话号码)?我应该实现emergency_contact_num表吗?还是某种一元的关系? egs会有所帮助

2 个答案:

答案 0 :(得分:1)

如果您的目标是规范化,那么联系信息就是联系信息,无论该人员在操作中扮演什么角色。 请查看联系方式建议,但不要包括紧急联系等。 患者是患者,并且可以具有与联系信息无关的任何数量的细节。 此时,您可以将紧急联系信息作为主要患者表的一部分包括在内,或者,如果您希望单个患者可能有多个联系人,您可以拥有一个Patient_Contact表,其中包含患者表中的患者ID和列出的每个联系人的联系人ID。 通过存储交叉引用,这将为过程中与不同参与者建立多种关系的联系人提供最大的灵活性。

因此,不要将患者作为FK包括在患者身上,而是在患者身上包含联系人ID。此时您还可以在联系表上包含患者联系人数据(他们的电话号码,地址等),并将联系人ID称为PatientContact。现在你只有一个表存储姓名,电话号码,地址等。

答案 1 :(得分:0)

我认为你可以有一本联系簿,都存储在数据库中

因此对于患者来说,进入数据库的可能是:

'id' => '1'
'first_name' => 'john'
'last_name' => 'doe'
'emergency_contact' => '2'

当然,您还应该在此表中包含有关此人的任何重要信息(例如电话号码)。对于紧急联系人,数据库可以是:

'id' => '2'
'first_name' => 'lisa'
'last_name' => 'joe'
'emergency_contact' => 'none'