本节内容
对象
defineObject —— 声明具有自有字段的新记录类型。扩展对象
defineField —— 向标准对象或其他应用的对象添加字段。关系
对象之间的双向
MANY_TO_ONE / ONE_TO_MANY 连接。实体一览
| 实体 | 目的 | 定义方式 |
|---|---|---|
| 对象 | 具有自有字段的新自定义记录类型(例如 PostCard、Invoice) | defineObject() |
| 字段 | 对象上的一列。 独立字段可以扩展你未创建的对象(例如向 Company 添加 loyaltyTier) | defineField() |
| 关系 | 两个对象之间的双向链接——双方都声明为字段 | 使用 defineField() 并指定 FieldType.RELATION |
| 索引 | 用于加速在某个对象上经常执行的查询的数据库索引 | defineIndex() |
src/objects/、src/fields/ 和 src/indexes/。 稳定的 universalIdentifier UUID 在不同部署之间将一切关联在一起。
索引(可选)
应用可以随对象一同提供索引,以确保经常执行的查询保持快速。 最常见的情况是某个你经常读取的状态列或外键列。src/indexes/post-card-status.index.ts
唯一索引
defineIndex 接受 isUnique: true,可同时用于单列和多列表达唯一性约束。 这是推荐的基础方式——defineField({ isUnique: true }) 已被弃用,并将在未来的版本中移除。
其他约束
- 部分
WHERE子句由管理员控制——应用无法声明它们。 - 每个对象最多只能有 10 个自定义索引(框架自身的索引不计入其中)。
fields 数组——最左边的列放在最前面,就像电话簿一样。 索引不是免费的:对表的每一次写入都会更新索引。 只有当你确实有查询需要某个索引时才添加它。