我定义了两个实体:
Product:
ProductId (PK)
Name (not null)
Parts:
PartId (PK)
Name (not null)
它们之间定义了多对多的关系。在我的要求中,我需要对复合产品/零件项目与其他复合产品/零件之间的另一种一对多关系进行建模。在某些情况下,我还需要能够将没有零件的产品链接到产品/零件项目。我是这样建模的:
ProductPartLink:
ProductPartLinkId (PK)
ProductId (not null)
PartId (null)
ParentId (null)
出于某种原因,这似乎不是对这种设计进行建模的最佳方式。如果不涉及太多细节,我无法链接到多对多交叉引用表,因为它可能还不存在(在产品和部件之间定义了其他关系)。
任何人都可以提出另一种更有效的方法吗?
更新: 此 ProductPartLink 只是一种统计/研究目的关系,不会以任何方式修改产品和部件之间的关系。我对我的建模方式有疑问的原因是因为我在实际上不是层次结构并且只有两个级别的项目之间实现了层次结构(使用 ProductPartLink .ParentId)。