14

谁能告诉我什么是深渊陷阱?也许也是粉丝陷阱,因为我不太清楚。另外,请提供易于理解的示例(通过 Chen 符号)。

到目前为止我的理解:我知道 Fan 陷阱是 M:1:1:M,这表明实体之间的路径是不明确的。
我明白那个。例如,如果 M 代表 Student,而另一个 M 代表 School,那么它将是模棱两可的,因为我们不知道哪个学生在哪个学校学习(这是我目前所理解的)。

但是,我无法理解什么是鸿沟陷阱。

另外,如何识别陷阱然后修复它?

4

3 回答 3

37

基于 Conolly&Begg:

当模型表示实体类型之间的关系但某些实体出现之间的路径不明确时,就会出现扇形陷阱

示例:(Staff)-1:N-has-1:1-(Division)-1:1-operates-1:N-(Branch) 粉丝陷阱 在此模型中,可能无法确定员工所属的分支,在员工所属部门有1个以上分支机构的情况。

重构模型解决陷阱 (Division)-1:1-operates-1:N-(Branch)-1:1-has-1:N-(Staff) 不是粉丝陷阱

当模型建议实体类型之间的关系但某些事件之间不存在路径时,就会出现鸿沟陷阱

示例:(分公司)-1:1-has-1:N-(员工)-0:1-oversees-0:N-(PropertyForRent) 深渊陷阱

由于员工与 PropertyForRent 的关系对于员工来说是可选参与 (0:1),因此 Branch 到 PropertyForRent 的路径可能不存在。对此的解决方案是 Branch 和 PropertyForRent 之间的直接关系,强制参与。

于 2013-05-07T17:23:57.570 回答
8

简而言之,对于这两种情况(FAN 和 CHASM),它会产生比实际更多的行(结果集)。如何识别

  • FAN -> 1-NN表示从一 -> 多 -> 多的表关系
  • CHASM -> N-1-N表示一个行表到两个或多个表的多关系
  • LOOP -> 加入所有表,并在循环时像圆一样(在这种情况下,我们绝对会丢失一些行)

没有什么可识别的,但当你创造宇宙时,我们必须睁大眼睛,如果你在开发宇宙时看到这些情况,总会有问题。所以通过应用别名、上下文来纠正。

一旦在宇宙级别解决了所有问题,我们就可以进行报告了。通过练习,您将拥有出色的知识。

于 2013-01-22T14:22:10.193 回答
0

当三张桌子以一种彼此之间存在一对多的方式连接时,就会出现我的粉丝陷阱。表示表 AB 和 C 以 .. 的形式连接。表 A 以一对多的方式链接到表 B,表 B 到表 C 再次与主要方式 A-->B-->C 相关联。

于 2013-10-25T09:35:27.143 回答