【问题标题】:Concern Regarding Hierarchical and Recursive ERD Modeling关于分层和递归 ERD 建模的担忧
【发布时间】:2017-05-28 19:40:21
【问题描述】:

我正在通过 Oracle Academy 服务学习 Oracle Database 12c SQL 数据建模。在了解了递归和层次关系以及如何对其建模后,提出了以下问题:

“我们公司在美国各地销售产品。所以我们有 将美国分为四个主要销售区域:北部、东部、 南部和西部地区。每个销售区域都有一个独特的区域 代码。然后将每个销售区域划分为销售区域。为了 例如,西部地区被划分为落基山脉, 西北、太平洋海岸和太平洋地区。每个区都有一个 唯一的区号。每个地区都由销售区域组成。 落基山地区由三个地区组成: 怀俄明-蒙大拿、科罗拉多和犹他-新墨西哥。西北区 由两个地区组成:华盛顿州和俄勒冈州-爱达荷州 领土。太平洋海岸区由两个 领地:加利福尼亚和内华达领地。太平洋 地区包括夏威夷领地和阿拉斯加领地。每个 领地有唯一的领地代码。

然后将每个销售区域细分为多个销售区域。为了 例如,科罗拉多州由两个销售区域组成:Front Range 和 西坡销售区。每个销售区域都有一个独特的销售区域 代码。

每个销售人员负责一个或多个销售区域,并拥有一个 具体销售配额。我们也有负责的销售经理 为一个或多个销售区和销售总监 负责一个或多个销售区域。每个销售经理都是 负责与他/她的地区的领土。我们不 重叠我们员工的职责。每个销售区域始终是 单个销售人员的责任,以及我们的经理和 董事的职责不重叠。有时我们的销售人员, 经理和董事将有特殊任务,不会被 负责销售。我们通过他们的身份识别我们所有的销售人员 员工 ID。”

提出了以下两个 ERD 作为该问题的解决方案:

我了解在这种情况下也允许使用以下两种模型:

同样,以下两种模型是否也合乎逻辑?:

我知道每个模型中的模型差异很大,但是它们在逻辑上是否都相等?

【问题讨论】:

    标签: sql data-modeling oracle12c


    【解决方案1】:

    “它们在逻辑上都相等吗?”

    简而言之,不。

    您的所有模型都引入了不同类型员工之间的管理关系。这是一个没有根据的假设,因为用例描述中没有任何内容表明情况如此。员工的职责都根据部门细分来定义。

    我认为将 SALES_DIVISION 和 SALES_ENTITY 表示为单个层次实体的模型是错误的。这在逻辑上是相似的,但是我们丢失了业务规则。 REGION > DISTRICT > TERRITORY > AREA 的严格层次结构是不可见的。同样,我们不再显示规定哪种类型的员工负责每种类型的区域的规则。我们也失去了哪些类型具有quota 属性和哪些没有的区别。

    逻辑数据建模的目的是尽可能清晰地直观地表达业务规则。这意味着在不添加不存在的规则的情况下完整地表示所有内容。当我们将逻辑模型转换为物理模型时,我们可能会选择将多个实体合并到一张表中,但我认为 ERD 应该尽可能具有表现力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-20
      • 2014-07-15
      • 1970-01-01
      • 2014-11-01
      • 2011-01-30
      • 1970-01-01
      • 2011-03-01
      相关资源
      最近更新 更多