database - 这个记号是什么意思? (ERD)

标签 database database-design erd

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

enter image description here

最佳答案

该表示法是用于实体关系建模的鱼尾纹表示法(这涉及实体名称、线和框以及关系上的名称,仅在此处不存在)。

每个工具都有自己的方式来表示数据模型的某些方面。例如,某些工具使用虚线/点线来表示非识别关系(即允许更改外键)。

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

R1- 每个[剂量]按 0,1,...,N [药物] 给药

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

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

  • Dose 的主键是 ID

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

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

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

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

enter image description here

编辑/更正

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

关于database - 这个记号是什么意思? (ERD),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20872371/

相关文章:

database - 在PostgreSQL中联接两个表,其中一个内容为Array字段,另一个为该数组的主表

mysql - 有没有比为每个排列创建索引更好的索引多列的方法?

database-design - 为什么 ERD 中不允许使用特定的基数?

uml - 实体关系建模,评论我的ERD

php - 无需刷新页面即可更改数据库中的客户端数据

mysql - 如何使用命令行实用程序从 MySQL 中的远程服务器获取数据库备份脚本?

ios - Firebase 的消息传递应用程序数据库结构

sql - 对于有竞争力的在线门票销售,您会建议什么数据库解决方案

多表的数据库设计

c# - 模型的动态属性