两个实体在关系模型中应该有相同的父实体

Two entities should have same parent entity in relational model

我有简单的模型:人物、照片、一对照片。

“Pair of photos”的一个实例应该与两个“Photo”实例相关联,而这两个“Photo”实例又与同一个“Human”实例相关联。

我尝试使用 ER 模型来实现它。在this情况下,“PhotoPair”可以包含来自不同人的照片,所以它是错误的。

那么,我该如何解决这个问题呢? (不使用触发器)

因为你在PhotoPair中有了PersonID,你可以设置重叠的外键约束:

ALTER TABLE PhotoPair
ADD CONSTRAINT 'photo1_person_fk'
    FOREIGN KEY (Photo1, PersonID)
    REFERENCES Photo (PhotoID, PersonID),
ADD CONSTRAINT 'photo2_person_fk'
    FOREIGN KEY (Photo2, PersonID)
    REFERENCES Photo (PhotoID, PersonID);