98259e88a1
* feat: update docs * feat: update docs * feat: update docs
83 lines
1.2 KiB
Markdown
83 lines
1.2 KiB
Markdown
# Collection 模板
|
||
|
||
<Alert>
|
||
📢 Collection 模板计划在 2022 年第四季度提供。
|
||
</Alert>
|
||
|
||
在实际的业务场景中,不同的 collection 可能有自己的初始化规则和业务逻辑,NocoBase 通过提供 Collection 模板来解决这类问题。
|
||
|
||
## 常规表
|
||
|
||
```ts
|
||
db.collection({
|
||
name: 'posts',
|
||
fields: [
|
||
{
|
||
type: 'string',
|
||
name: 'title',
|
||
}
|
||
],
|
||
});
|
||
```
|
||
|
||
## 树结构表
|
||
|
||
```ts
|
||
db.collection({
|
||
name: 'categories',
|
||
tree: 'adjacency-list',
|
||
fields: [
|
||
{
|
||
type: 'string',
|
||
name: 'name',
|
||
},
|
||
{
|
||
type: 'string',
|
||
name: 'description',
|
||
},
|
||
{
|
||
type: 'belongsTo',
|
||
name: 'parent',
|
||
target: 'categories',
|
||
foreignKey: 'parentId',
|
||
},
|
||
{
|
||
type: 'hasMany',
|
||
name: 'children',
|
||
target: 'categories',
|
||
foreignKey: 'parentId',
|
||
},
|
||
],
|
||
});
|
||
```
|
||
|
||
## 父子继承表
|
||
|
||
```ts
|
||
db.collection({
|
||
name: 'a',
|
||
fields: [
|
||
|
||
],
|
||
});
|
||
|
||
db.collection({
|
||
name: 'b',
|
||
inherits: 'a',
|
||
fields: [
|
||
|
||
],
|
||
});
|
||
```
|
||
|
||
## 更多模板
|
||
|
||
如日历表,每个初始化的表都需要初始化特殊的 cron 和 exclude 字段,而这种字段的定义就由模板来完成
|
||
|
||
```ts
|
||
db.collection({
|
||
name: 'events',
|
||
template: 'calendar',
|
||
});
|
||
```
|