具有严格1-2关系的实体

时间:2015-02-27 18:03:44

标签: database-design entity-relationship er-diagram

我试图理解当关系具有确切性质时,我们如何建模和定义两个实体的基数。让我们说1比2。

例如,如果我有实体旅程和位置。现在每个旅程都有2个位置,一个起始位置和一个结束位置。

那么我们如何模拟这种关系并将基数放在每个实体上(旅程和位置)。

简单的Google搜索会产生简单的1-1,1-m和m-n关系解释。但是我们如何将它们限制在1-2?

2 个答案:

答案 0 :(得分:3)

您的示例不是" 1到2",但是" N到2",并且您只需使用两个外键即可对其进行建模:

enter image description here

(可能需要检查以确保起点和终点位置不同。)


如果你真的想要" 1到2",从某种意义上说,任何给定的位置总是连接到一个旅程,你必须做这样的事情......

enter image description here

...并使用支持延迟约束的DBMS,这样您就可以在插入新数据时打破鸡蛋问题。

在不支持延迟约束的DBMS上,你可以使起始和结束位置为NULL,但是它不再是" 1到2",而是" 1至0..2"关系。

答案 1 :(得分:0)

不同的建模符号以略微不同的方式表示,但通常数字(不同地称为范围多样性)写在附近它适用的关系线的末尾。它在UML表示法中最常见。在IDEF1X术语中,它有时被称为" N Cardinality"。

在SQL数据库中,出于大多数实际目的,实际上不可能实现最小所需多重性大于零的这种关系的约束。这可能解释了为什么这些关系在数据库模型中不常见,但在类图中更常见。面向对象的系统原则上可以强制执行约束,而基于SQL的数据库通常可以实现。