我试图在我们的应用程序中实现Party Data Model / Universal Data Model,它需要存储实体(人员、公司)之间的不同关系。
关系实例:雇主/雇员、丈夫/妻子、卖方/客户。
我们还需要存储一个人在公司内部可以拥有的不同类型的角色。
例如,一个人可以是谷歌的雇员,但同时也占据了一个发展主管的职位。
我正在以这个模式为例,但我必须承认,我并不完全理解它。

从模式上看,我认为党的角色是一个树状结构的表?一个角色可以有一个父角色?示例:首席执行官>开发主管>开发人员
或者,党的角色是按类别组织的,如在图片中?个人角色,客户角色,组织角色。
我尝试为这张图片创建DB模式,这就是我所拥有的:

数据看起来会是这样
Party
John Smith (Person)
Google (Organization)
Jane Smith (Person)
PartyRelationshipType
Employment
Married
PartyRole
Employer
Employee
Husband
Wife
PartyRelationship
Id RelationshipType FromParty ToParty Role FromDate ThruDate
1 Employment Google John Smith Employer 1/01/2008 16/08/2011
2 Married Jane Smith John Smith Wife 15/11/2000 结构还好吗?
例如,我如何定义Google之间的就业关系?他们都是雇员,但同时他们的职称也不同。我应该为每个标题创建一个新的角色吗?或者这些数据应该保存在其他地方?
有人能给我举个真实数据的例子吗?
发布于 2016-01-19 11:38:13
我认为你需要先退一步,熟悉一下这个符号,它似乎是巴克:
http://www.agiledata.org/essays/dataModeling101.html
PartyRole结构确实说明了一种类型的层次结构,但是每个子类型都使用相同的主键,即PartyRole。想必,当实现这些实体时,每个实体都有不同的属性,因此不会作为一个PartyRole表来实现。此外,还将有其他参与者角色可能与之相关的表的业务规则。但就党的关系而言,你所拥有的似乎是正确的
https://dba.stackexchange.com/questions/105875
复制相似问题