我在C#中使用SQL Server编写了一个文档映像应用程序来编目祖先照片。在一个表中是所有的祖先,在另一个表中我存储照片以及有关照片的信息。显然,每个祖先都可以有一张或多张照片。这个设计很简单,我建立了一对多的关系,它很有效。
问题在于:如何处理包含多个人的照片?这似乎是多对一的关系,除了许多也会很多。
答案 0 :(得分:1)
您描述的是多对多关系。这实际上很常见。
通常在额外的桌子的帮助下解决。
因此,如果你有人物和照片,你可以创建一个额外的表PersonPhoto。
此表包含(至少)两个字段,PersonId和PhotoId。
根据PhotoId,你没有定义基于PersonId的Person到PersonPhoto之间的一对多关系,以及从Photo到PersonPhoto的另一个一对多关系。
有效地,你现在在人与照片之间有多对多的关系:任何照片都可以包含很多人,任何人都可以拍很多照片。
答案 1 :(得分:0)
知道了! BJ,感谢您编辑我的初始帖子,而不仅仅是删除它。好多了。 oerkelens,谢谢你的快乐。
我使用三个字段创建了额外的表:keyPersonID,keyLineNo和fldPhotoID。 keyLineNo为一个人提供一对多以及外键字段以及对结果进行排序的方法。然后我使用fldPhotoID为我的照片一对一。
一旦我看到你的反应,这一切都是有道理的。