我正在尝试在我们的应用程序中实现Party Data Model
/Universal Data Model
需要存储实体(人员、公司)之间的不同关系。
关系示例:雇主/雇员、丈夫/妻子、卖方/客户。
我们还需要存储一个人在公司内可以拥有的不同类型的角色。
例如,一个人可以是 Google 的员工,但同时担任开发主管的职位。
我以这个模式为例,但我需要承认我并不完全理解它。
从架构来看,我认为派对角色是一个树形结构表?一个角色可以有一个父角色吗?示例:CEO > 开发主管 > 开发人员
或者,党的角色是按类别组织的,如图所示?个人角色、客户、组织角色。
我试图为这张图片创建数据库模式,这就是我所拥有的:
数据看起来像这样
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
Run Code Online (Sandbox Code Playgroud)
结构好吗?
例如,我如何定义 Google 员工之间的关系?他们都是雇员,但同时他们拥有不同的头衔。我应该为每个标题创建一个新角色吗?或者这些数据应该保存在其他地方?
有人可以给我看一个真实数据的例子吗?
小智 2
我认为你需要先退后一步,熟悉一下这个符号,这似乎是巴克的:
http://www.agiledata.org/essays/dataModeling101.html
参与方角色结构确实说明了类型的层次结构,但每个子类型都使用相同的主键,即参与方角色 ID。据推测,在实现时,每个实体都将具有不同的属性,因此不会作为单个 PartyRole 表来实现。此外,还会存在有关参与方角色可能与哪些其他表相关的业务规则。但就政党关系而言,你所拥有的似乎是正确的