【问题标题】:What does this notation mean? (ERD)这个符号是什么意思? (ERD)
【发布时间】:2014-01-19 06:38:20
【问题描述】:

我无法理解给定模型上的符号。 我认为这意味着 1-n(包括 0),但我不明白为什么 - 任何药物都应该有剂量,此外,密钥不可为空。那怎么可能是0呢?

【问题讨论】:

  • 图表表示每一种药物都需要有一个对应的剂量,但没有任何相应药物的剂量是可能的。
  • @sqlvogel 所说的,再加上许多药物可能具有相同的剂量。这被称为“Crow's-Foot Notation”,虽然它不是最漂亮的,但许多专家更喜欢它,因为(恕我直言)它简洁地提供了最多的信息。
  • @RBarryYoung 谢谢,是的,但是如果没有药物,感觉会有剂量吗? PS:使用UML数据配置文件建模数据库不是更好吗,有什么区别吗_

标签: database database-design er-diagrams


【解决方案1】:

符号是实体关系建模的乌鸦脚符号(这与实体名称、线和框以及关系上的名称有关,仅在此处不存在)。

每个工具都有自己的方式来表示数据模型的某些方面。例如一些工具使用点划线来表示非识别关系(即允许FK改变)。

图表(框和线)告诉我们:

R1- 每个 [Dose] 被管理为 0,1,...,N [Medicament(s)]

R2- 每个 [药物] 必须有 1 个处方 [剂量]

  • NN 表示 Not Null(这取决于工具)

  • Dose 的主键是 ID

  • Medicament 的主键是 [ID] 和 [ID Dose](来自 Dose 的 FK)。

您认为图表不一致是正确的。 (NN) Not Nullable 表示 [Medicament] 端的强制关系。 因此 (0) 或小圆圈不应该在那里。

我已经猜到了上面文字中的关系,我可能是错的。这就是为什么数据建模者应该明确他们的确切含义,否则这种关系可能会被错误地解释。

这是一个使用 MySQL Workbench ERD 工具的类似图表 - 任何类型的线都没有显示小圆圈或零:

编辑/更正

不熟悉用于表示图表的特定工具,我假设这两列都是子表的复合键的一部分。但是,正如@KhDonen 下面的评论所表明的那样,情况不一定如此。也许该工具用“钥匙”符号/图标指定 FK,即使它不是 PK 的一部分。在这种情况下,每个表上只有 1 个键,并且图表将保持一致。

【讨论】:

  • 为什么你认为Medicament的主键既是ID又是IDDose?如我所见,只有一个PK。同样为了一致性,为什么会不一致? Dose 中的 PK 不为空,因此可以单独存在。
  • 我说 PK 是复合的,因为该图显示了 2 个关键符号(在药物实体中每列的左侧)。由于 DoseID 被指定为 PK 的一部分,因此存在不一致,该线显示为虚线。我希望这更清楚一点。
  • 谢谢,但我仍然没有得到 PK 部分 - 如果您检查 Dose 实体,它只有一个主键,用 PK 表示。药剂有一个PK和一个FK..也只有一个PK。所以这条线应该是实心的?我以为只有PK同时是FK的时候才这样。
  • 谢谢你的评论,你可能是对的。我对答案进行了编辑。
  • 谢谢-我想知道答案以及OP,我只是想确定一下。我仍然认为单独使用Dose是没有意义的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-03
  • 2016-10-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多