Microsoft Dynamics 365 F&O表基数配置疑问及官方文档求助
核心视角定义
两个字段围绕「单条记录」的双向关系展开:
Cardinality:关联表的单条记录,可对应当前表的记录数量(描述关联表对当前表的“多”侧关系)Related table cardinality:当前表的单条记录,必须/可对应关联表的记录数量(约束当前表对关联表的“一”侧关系)
常见关系配置规则
1. 多对一(非必填)
当前表多条记录可关联到关联表的一条记录,且当前表允许无关联(关联字段可为空):
Cardinality:ZeroMore(关联表一条记录可对应当前表0条或多条)Related table cardinality:ZeroOne(当前表一条记录可对应关联表0条或1条)
2. 多对一(必填)
当前表多条记录必须关联到关联表的一条记录,关联字段不可为空:
Cardinality:ZeroMore(关联表一条记录可对应当前表0条或多条)Related table cardinality:ExactlyOne(当前表一条记录必须对应关联表1条)
3. 一对一(非必填)
当前表与关联表记录一一对应,双方都允许无关联:
Cardinality:ZeroOne(关联表一条记录可对应当前表0条或1条)Related table cardinality:ZeroOne(当前表一条记录可对应关联表0条或1条)
4. 一对一(必填)
当前表与关联表记录必须一一对应,双方都不允许无关联:
Cardinality:ExactlyOne(关联表一条记录必须对应当前表1条)Related table cardinality:ExactlyOne(当前表一条记录必须对应关联表1条)
关键澄清
你之前的理解存在视角颠倒问题:Related table cardinality约束的是当前表单条记录对关联表的关系数,而Cardinality描述的是关联表单条记录对当前表的关系数。D365中关联表基数仅提供ZeroOne和ExactlyOne选项,是因为表关系通常从“多”侧表向“一”侧表建立引用(比如订单行→订单头),此时用ZeroMore表示“多”侧的数量,用ZeroOne/ExactlyOne定义“一”侧的约束规则。
内容的提问来源于stack exchange,提问作者Emanuel Hiroshi
相关产品推荐
相关产品推荐

