ERD中1..n、?..m等符号含义咨询
搞懂ERD里的
1..n、?..m这类符号 嘿,作为刚接触ERD的新手,能分清1:1、1:n这些基础关联已经很棒了!你提到的1..n、?..m这类符号,其实是**基数(Cardinality)和可选性(Optionality)**的组合表示,在Software Idea Modeler这类工具里是标准的关联约束写法,我给你拆解得明明白白:
先搞懂两个核心概念
- 基数:定义了关联中允许的实例数量范围(最小/最大)
- 可选性:决定了这个关联是否是“必填”的(即实体是否可以不参与该关联)
逐个解析符号含义
1. 1..n
- 左边的
1:表示最小基数为1——这个端的实体必须至少关联1个对方实体(关联是必填的) - 右边的
n:表示最大基数为任意多个——这个端的实体可以关联多个对方实体 - 举个实际例子:假设你设计「用户」和「订单」的关联,用户端写
1..1,订单端写1..n,意思就是:每个订单必须属于且仅属于1个用户,每个用户至少拥有1个订单(不能是没有订单的用户)。
2. ?..m
- 左边的
?:是0的简写,表示最小基数为0——这个端的实体可以不关联任何对方实体(关联是可选的) - 右边的
m:和n一样,表示最大基数为任意多个 - 例子:比如「用户」和「收货地址」的关联,用户端写
0..1(或?..1),地址端写?..m,意思就是:一个用户可以没有收货地址,也可以有多个;每个收货地址可以属于0个(比如还没分配给用户的备用地址)或1个用户。
常见组合汇总
给你整理几个ERD里常用的约束写法,方便对照:
1..1:必须关联且仅能关联1个实例(一对一必填)0..1(或?..1):可选关联,最多关联1个实例(一对一可选)1..n:必须关联至少1个,最多关联多个(一对多必填)0..n(或?..n):可选关联,最多关联多个(一对多可选)1..n+1..m:多对多必填(两端实体都必须参与关联)0..n+0..m:多对多可选(两端实体都可以不参与关联)
内容的提问来源于stack exchange,提问作者Mohammad Salehi
相关产品推荐
相关产品推荐

