0

myTable id, admitDate, dischargeDatePK
jxn id ,code
代码表 code, description

myTable 中还有许多其他字段,而为每条记录设置唯一标识符的唯一方法是拥有 id、admitDate、dischargeDate 这三个值 PK。如果同一个人(相同 ID)被录取两次,则 ID 将重复,但admitDate 和dischargeDates 将不同。我试图将id主键的一部分从 myTable 复制到 jxn 表,SSMS 发疯了,说我没有唯一约束。

我意识到这现在行不通,但我想知道在实践中这个问题通常会如何解决?正如我所说,可靠地识别记录的唯一方法是将这三个字段放在一起。多于一次入院/出院的人如何处理?

我是否需要找到违反 PK 唯一约束的人并将其移至moreThanOneAdmission表中?

4

1 回答 1

1

您应该能够使用患者 ID 和入院日期(可能加上时间)的复合主键。如果他们尚未出院,您可能不知道出院日期。

如果您收到有关唯一约束的错误,可能是因为您在定义它时遇到了错误。拥有复合主键绝对是合法的。

要将患者入院表与联结表进行完全内部联接,则联结表中的 FK 必须具有由患者入院表中的(所有三个)PK 字段组成的外键。

于 2012-06-13T00:47:31.653 回答