【发布时间】:2016-11-20 16:39:13
【问题描述】:
我有两张桌子DOCTORS 和PATIENTS。我希望医生和患者都有不固定的联系信息(例如电话号码、地址等)。例如,我们可以为医生或患者添加多部电话。
我考虑过创建一个单独的表,例如PHONES 带有字段 phoneID、电话号码和指向联系人的外键,如下所示:
电话
phoneID [pk]
number
contactID [fk]
医生
docID [pk]
fname
sname
specialization
.
.
.
患者
patID [pk]
fname
sname
.
.
.
第一个问题来自patID 和docID 可能(并且最终)具有相同值的事实。因此,将电话与一个且只有一个人关联变得更加困难。
到目前为止,我已经想到了三种可能的解决方案:
为医生和患者提供自定义格式的主键。例如,医生可能有“d00001”、“d00002”等形式的 id,而患者 id 可能有“p00001”、“p00002”等形式。我担心这可能会使事情变得不必要地复杂化。
另一种解决方案是将医生和患者放在一个表中,并通过使用另一个字段来定义他们是医生还是患者。
为医生和患者创建单独的
PHONE表,但这更加笨拙。
不知何故,我认为这两种方法都不是最好的。有什么建议吗?
【问题讨论】:
标签: sql sql-server