我一直在遇到这个设计问题,至今我对解决方案并不满意。问题是这样的:在多个表格之间共享关系的最佳实践
我有两个或更多的实体,像People和Dogs,它们都与Notes表有关系,它存储消息字段和一些关于消息的元数据,比如作者。
1)第一种选择是不强制外键。这样我就可以将FK存储为像peopleId或dogId(不管它是什么)在相同的通用FK字段中,比如fkId。然后,我将tableId存储在另一列中 - 人们可能希望从RDMS元数据中获取表ID,但是您也可能有一个肮脏的黑客入侵,并且明确地制作一张表,您需要手动更新。这真的很sl and,我只是提到它的完整性。
2)克隆需要它的每个表的Notes表,如PeopleNotes,DogNotes,CatNotes等。这会产生一个相当主要的规范化问题。
其他人在这种情况下做了什么?