我对与此处描述的场景类似的场景有疑问: SQL:实体属于(多对一)两个不同实体之一
假设我了解了表格Party
和所有其他引用它的内容。但我很好奇想知道表格中列的PartyType
需要是什么Name
?我的意思是,它只是保留“Person”或“Organization”varchar?
同样,在Party
表格中,列是做什么Name
用的?
而且,表格PartyType
到底有什么用呢?我的意思是,它只是为了有一个地方插入所有类型,更重要的是确保在插入时,如果有错误PartyTypeCd
(表中不存在PartyType
),我们会收到错误,对吗?
另一个问题是,您将如何插入Organization
或Person
?看到建议的架构,Organization
和Person
表有自己的 ID(分别为PersonId
和OrganizationId
),它们引用表PartyId
中的Party
。那么,这是否意味着我们应该首先在表Person
中插入一个新的(例如)Party
?如果是这种情况,表中的列AUTO INCREMENT
上是否应该有一个,以便我们确保不会得到具有相同 ID 的组织和人员?PartyId
Party
因为,PartyId
不能成为唯一的主键。 表中的主键Party
应该是和 的组合键。PartyTypeCd
PartyId
我的情况与上面链接的问题类似。仅供参考,这里有一个小的架构示例。
基本上,我遇到这样一种情况,即一个Component
(具有自己的列,如component
、和price
)可以与User_Brand
一个或一个相关联System_Brand
(两者都有自己独特的列和字段,我已经从屏幕截图中排除了这些列和字段...因此将它们合并到一个type
带有列的表中不是一个解决方案)。