Back to Nocobase

关系字段

docs/docs/cn/data-sources/data-modeling/collection-fields/associations/index.md

2.1.272.7 KB
Original Source

关系字段

在 NocoBase 中,关系字段用于在不同数据表之间建立关联。它让一条记录可以引用另一张表中的记录,或者引用多条记录,比如订单关联客户、任务关联负责人、学生关联课程。

关系字段和普通字段不完全一样。普通字段通常对应数据库里的真实列,用来保存文本、数字、日期等值;关系字段保存的是表与表之间的连接配置,以及用于定位关联记录的键。对于主数据库,关系字段可以在创建字段时生成必要的关系配置;对于外部数据库,通常基于已有主键、外键或唯一字段建立关系,不会自动修改外部数据库表结构。

选择关系类型

常见关系类型如下:

关系类型适用场景
一对一一条记录只关联另一张表的一条记录。比如员工关联一份入职档案。
一对多一条记录关联另一张表的多条记录。比如客户关联多个订单。
多对一多条记录关联同一条目标记录。比如多个订单关联同一个客户。
多对多两张表之间可以互相关联多条记录。比如学生和课程互相关联。
多对多(数组)用数组字段保存多个目标记录标识,适合已有表结构中已经用数组保存关联值的场景。

默认先根据业务语义判断:如果当前记录只属于一个目标记录,通常用多对一;如果当前记录需要看到目标表中的多条记录,通常用一对多;如果两边都可以关联多条记录,通常用多对多。

配置要点

配置关系字段时,重点确认这些内容:

  • 目标数据表:关系要关联到哪张表
  • 关系类型:一对一、一对多、多对一、多对多,或者多对多数组
  • 关系键:用哪些字段定位两边记录,通常是主键、外键或唯一字段
  • 标题字段:关联记录在选择器和区块中默认显示哪个字段

:::warning 注意

外部数据库中的关系字段主要是 NocoBase 保存的关系元数据。新增关系字段不会自动在外部数据库中创建真实外键、索引或中间表。如果需要数据库层面的外键约束,请先在数据库侧完成,再回到 NocoBase 同步和配置字段。

:::

相关链接