SKILL.md
name: dict description: 系统字典和业务字典配置。建表需要枚举字段或给表添加枚举类字段时使用
字典配置
字段声明
-- 系统字典
`is_locked` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '锁定,dict:is_locked',
-- 业务字典, 字典编码格式: {mod}_{table}_{column}
`status` varchar(20) NOT NULL DEFAULT '' COMMENT '状态,dictbiz:ec_order_status',
添加字典
1. 创建 CSV 文件
src/tables/{mod}/
├── base_dict.{mod}.sql.csv # 系统字典
├── base_dict_detail.{mod}.sql.csv # 系统字典明细
├── base_dictbiz.{mod}.sql.csv # 业务字典
├── base_dictbiz_detail.{mod}.sql.csv # 业务字典明细
base_dictbiz.{mod}.sql.csv 中:
id使用nr uuid生成唯一 IDlbl为:{table_comment}-{column_comment}, 例:订单-状态type一般为:string, 或numbertenant_id固定为:ZDbZlC1OT8KaDg6soxMCBQ(默认租户)is_sys一般为:1代表是否系统记录, 系统记录禁止用户修改/删除is_add一般为:0代表是否允许用户新增字典明细order_by从1开始依次递增- 例如:
id,code,lbl,type,order_by,tenant_id,is_sys,is_add
l4V3aK5XRCOqSWsc/59GEw,exh_booking_order_state,订单-状态,string,1,ZDbZlC1OT8KaDg6soxMCBQ,1,0
base_dictbiz_detail.{mod}.sql.csv 中:
id使用nr uuid生成唯一 IDdictbiz_id为业务字典 ID, 对应base_dictbiz.{mod}.sql.csv中对应业务字典的 ID_dictbiz_lbl为业务字典标签, 对应base_dictbiz.{mod}.sql.csv中对应业务字典的lbl字段lbl字段为字典明细标签val字段为字典明细值order_by此业务字典从1开始依次递增tenant_id固定为:ZDbZlC1OT8KaDg6soxMCBQ(默认租户)is_sys一般为:1代表是否系统记录, 系统记录禁止用户修改/删除- 多个字典明细之间可以留空行, 方便阅读
- 例如:
id,dictbiz_id,_dictbiz_lbl,lbl,val,order_by,tenant_id,is_sys
QudgQBmlTtGBastzn2jpwA,l4V3aK5XRCOqSWsc/59GEw,订单-状态,未支付,unpaid,1,ZDbZlC1OT8KaDg6soxMCBQ,1
23GjMKTwRKeUvIZvTCwHSg,l4V3aK5XRCOqSWsc/59GEw,,已支付,paid,2,ZDbZlC1OT8KaDg6soxMCBQ,1
2. 生成 UUID
nr uuid # 生成1个
nr uuid -- 3 # 生成3个
3. 导入业务字典
nr importCsv {mod}/base_dictbiz.{mod}.sql.csv
内置系统字典
| 编码 | 用途 |
|---|---|
| is_deleted | 删除标记 |
| is_locked | 锁定 |
| is_enabled | 启用 |
| is_default | 默认 |
| yes_no | 是否 |
is_sys 字段
`is_sys` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '系统记录,dict:is_sys',
is_sys=1 时:
- 自动生成枚举类型
- 禁止用户修改/删除