组织层次结构的数据库设计

时间:2017-01-24 23:00:15

标签: database database-design

我有一个简单的用例,我为组织提供了以下数据模型。

Org Details
===========
Org Id
Org Name
Org Type

我想要做的是设置一个嵌套的组织层次结构,这样我就可以创建一个嵌套的父级>多个组织之间的子关系。换句话说,一个父组织将拥有多个子组织。我想这样建模,

Org Hierarchy
=============
relationshipId
parentOrg   -------- Org Details(1)
subOrg      -------- Org Details(*)

--------表示一对一和一对多的映射

我是以正确的方式接近这个吗?还是有更好的方法?

1 个答案:

答案 0 :(得分:1)

在单独的表中记录父子关系是解决此问题的有效方法。但是,您不需要代理relationshipId作为主键。由于每个子组织只能拥有一个父组织,因此subOrg是一个合适的主键。或者,您可以将{nulllable parentOrg列添加到Org Details