我很难理解给我的模型上的符号。我认为这意味着 1-n(包括 0),但我不明白为什么 - 任何药物都应该有剂量,此外,密钥不可为空。那么怎么可能是0呢?
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 表示[药物]端的强制关系。因此(0)或小圆圈不应该在那里。
我已经猜到了上面文字中的关系,我可能是错的。这就是为什么数据建模者应该明确它们的确切含义,否则这种关系可能会被错误地解释。
这是使用 MySQL Workbench ERD 工具的类似图表 - 任何类型的线都没有显示小圆圈或零:
编辑/更正
由于不熟悉用于表示图表的特定工具,我假设这两列都是子表的复合键的一部分。但是,正如@KhDonen 下面的评论所表明的那样,情况不一定如此。也许该工具用“钥匙”符号/图标指定 FK,即使它不是 PK 的一部分。在这种情况下,每个表上只有 1 个键,并且图表是一致的。