docs/docs/cn/data-sources/calendar/calendar-collection.md
日历表适合保存带时间范围的数据,比如会议室预约、项目排期、课程安排、值班计划、活动日程。它本质上仍然是一个数据表,不过会预置和日历事件相关的字段,方便后续配合日历区块使用。
日历表只能通过主数据库页面创建。外部数据库、REST API 数据源和外部 NocoBase 数据源不支持创建日历表。
日历表适合这些业务场景:
在主数据库中点击「Create collection」,选择「Calendar collection」可以创建日历表。
日历表的创建配置与普通表基本一致。Preset fields 用来控制常用系统字段,日历表还会预置用于保存重复事件的字段。
| 配置 | 说明 |
|---|---|
| Collection display name | 数据表在界面中显示的名称,比如「会议室预约」「课程安排」「值班计划」。 |
| Collection name | 数据表的标识名称,用于 API、关系字段、权限、工作流等内部引用。 |
| Inherits | 选择要继承的父表。只有主数据库是 PostgreSQL 时可见。 |
| Categories | 数据表分类。分类只影响数据表管理界面的组织方式,不改变数据表结构。 |
| Description | 数据表说明。可以写这个日历表保存什么事件、由谁维护、和哪些业务流程有关。 |
| Preset fields | 预设字段。创建日历表时建议保留系统字段和日历表内置字段。 |
日历表创建后通常包含这些内置字段。cron 和 exclude 用来保存重复事件规则和排除日期。
| 字段 | 字段名 | 说明 |
|---|---|---|
| ID | id | 默认主键字段,用于唯一标识一条事件记录。 |
| 创建时间 | createdAt | 自动记录事件记录的创建时间。 |
| 创建人 | createdBy | 自动记录创建事件记录的用户。 |
| 更新时间 | updatedAt | 自动记录事件记录最后一次更新的时间。 |
| 更新人 | updatedBy | 自动记录最后一次更新事件记录的用户。 |
| 排序 | sort | 保存事件记录的排序值,用于支持拖拽排序等排序能力。 |
| Repeats | cron | 保存重复事件规则,比如每天、每周、每月或每年重复。 |
| Exclude | exclude | 保存重复事件中被排除的日期,通常由日历交互自动维护。 |
| 空间 | space | 启用多空间插件后可用,用于按空间隔离数据。没有启用多空间时不会出现。 |
日历区块使用日历表时,还需要指定用于展示事件的业务字段:
| 配置 | 说明 |
|---|---|
| 标题字段 | 确定事件在日历中的标题,比如「会议主题」「课程名称」。 |
| 开始日期字段 | 确定事件开始时间。通常使用日期时间字段。 |
| 结束日期字段 | 确定事件结束时间。通常使用日期时间字段。 |
:::warning 注意
cron 和 exclude 通常由日历能力维护,不建议当作普通业务字段直接编辑。标题、开始日期和结束日期字段需要根据业务自己创建和配置,否则日历区块无法正确展示事件。
:::
日历表和普通表一样需要主键字段。创建表时建议保留 ID 预设字段,默认主键类型是 Snowflake ID (53-bit)。
如果日历表没有主键,需要在编辑数据表时设置「Record unique key」,否则日历区块可能无法正确打开、编辑或定位事件记录。
在数据表列表中,点击日历表右侧的「Edit」,可以修改数据表显示名称、分类、说明、简单分页模式和「Record unique key」等配置。
日历表的 cron、exclude 等内置字段通常用于日历能力,不建议改成其他业务含义。如果需要扩展事件信息,可以新增普通业务字段,比如地点、参与人、会议室、状态等。
在数据表列表中,点击日历表右侧的「Delete」,可以删除日历表。
删除日历表会删除事件记录、日历内置字段数据和相关 Collection 元数据。删除前先确认日历区块、表格区块、权限、工作流和 API 是否仍然依赖这张表。
:::danger 警告
日历表通常保存排期、预约和值班等时间数据。删除后,历史事件和重复规则都会丢失,操作前先确认数据已经备份或不再需要。
:::
日历表可以使用普通表的多数数据区块做增删改查。另外,它通常会配合日历区块使用:
| 区块 | 用途 |
|---|---|
| 日历区块 | 按日、周、月等视图展示事件记录,并在日历中创建、查看和编辑事件。 |
| 表格区块 | 按列表方式查看、筛选和批量维护事件记录。 |
| 表单区块 | 新增或编辑单条事件记录。 |
| 详情区块 | 查看单条事件的详细信息。 |