【发布时间】:2012-08-14 20:33:03
【问题描述】:
我有一个表Visit,其中有VisitID、PatientID、DoctorID 等列,还有PrescriptionID 列。在表Prescription 中有列PrescriptionID 和DrugID(它们是我的主键)。一个处方可以有很多药,所以会有这样的:
处方 ID:1 药物 ID:38
处方 ID:1 药物 ID:278
处方 ID:1 药物 ID:7
在Visit 表中,将插入“1”值作为PrescriptionID。但是现在我不能用外键加入这两个表,因为不是每次访问都有处方,所以PrescriptionID 可以为空,我有错误,列必须是主键或必须是唯一的。如何以其他方式加入这些表?
【问题讨论】:
-
请显示导致此错误的查询。
-
ALTER TABLE Prescription ADD FOREIGN KEY (PrescriptionID) REFERENCES Visit(PrescriptionID)
-
您实际上需要
PrescriptionID做什么?根据您所说,VisitID和PrescriptionID之间存在 1:1* 的关系。Prescription表不能使用VisitID作为外列吗? -
PrescriptionID必须采用特定格式(20 个字符,每个字符都表示某种含义等),因此它与 VisitID 无关。 -
我并不是要完全摆脱
PrescriptionID- 只是让Prescriptions表使用FK 来代替VisitID。
标签: sql sql-server join