我正在通过Oracle Academy服务学习Oracle数据库12c SQL数据建模。在了解了递归关系和层次关系以及如何对它们进行建模之后,提出了以下问题:
“我们公司在美国各地销售产品。所以我们把美国划分为四个主要的销售区域:北部、东部、南部和西部地区。每个销售区域都有一个独特的区域代码。然后将每个销售区域划分为销售区。例如,西部地区分为落基山、西北、太平洋海岸和太平洋地区。每个地区都有一个独特的地区代码。每个地区都是由销售区域组成的。落基山区由三个地区组成:怀俄明州-蒙大拿州、科罗拉多州和犹他州-新墨西哥州。西北地区由两个地区组成:华盛顿和俄勒冈州-爱达荷州。太平洋海岸地区由两个地区组成:加利福尼亚州和内华达州。太平洋地区包括夏威夷地区和阿拉斯加地区。每个领土都有一个独特的区域代码。 然后将每个销售区域细分为销售区域。例如,科罗拉多州由两个销售区域组成:前沿区和西坡区。每个销售区域都有一个独特的销售区域代码. 每个销售人员负责一个或多个销售领域,并有特定的销售配额。我们还有负责一个或多个销售区域的销售经理和负责一个或多个销售区域的销售主管。每个销售经理负责区域与他/她的地区。我们不重叠员工的职责。每个销售区域总是由一个销售人员负责,我们的经理和董事的职责不重叠。有时,我们的销售人员、经理和董事会有特殊的任务,而不负责销售。我们根据所有销售人员的雇员身份识别他们的身份。“
为解决这一问题,提出了以下两个ERD:

据我所知,在这种情况下,亦可采用以下两种模式:


同样,以下两种模型是否也具有逻辑意义?


我知道每个模型都有很大差异,但它们在逻辑上是否都是平等的呢?
发布于 2017-05-28 11:39:58
“它们在逻辑上都是平等的吗?”
总之,没有。
您的所有模型都引入了不同类型员工之间的管理关系。这是一个不合理的假设,因为用例描述中没有任何东西可以说明这就是案例。雇员的责任都是按部门划分来界定的。
我认为将SALES_DIVISION和SALES_ENTITY表示为单一层次实体的模型是错误的。这在逻辑上是相似的,但我们已经失去了业务规则。严格的地域、地区、地域、面积的等级是看不见的。同样,我们不再显示规定哪种类型的员工负责每种类型的区域的规则。此外,我们也失去了哪些类型具有quota属性,哪些类型没有。
逻辑数据建模的目的是尽可能直观地表达业务规则。这意味着在不添加不存在的规则的情况下,完整地表示所有内容。当我们将逻辑模型转换为物理模型时,我们可以选择将多个实体合并到一个表中,但我认为ERD应该尽可能具有表现力。
https://stackoverflow.com/questions/44188339
复制相似问题