# 知识库 ## 数据模型 ### 1.知识库类型 见通用文档中[码表类型](/utils/common.md) ### 2.知识库数据 ## 数据说明 1. 知识库中的数据,原则上只做增加 2. 知识库类型表保存知识库数据对应的大类 3. 知识库数据表保存实际的知识库类型对应的知识数据 ## 数据结构 ### 1.知识库/码表类型(dt_code_type) | 知识库/码表类型(dt_code_type) | | | | | :-----------------------------: | :----------------: | :-----------: | :-------------------------------------: | | 字段 | 字段说明 | 数据类型 | 备注 | | id | 主键(无业务含义) | varchar(20) | id全局唯一,命名规则:“CODETYPE”+顺序码 | | group_code | 集团编码 | varchar(40) | | | project_id | 项目id | varchar(40) | id规则:Pj+6位地区码+4位顺序码 | | code | 知识库编码 | varchar(40) | | | name | 知识库类型名称 | varchar(40) | | | extras | 扩展属性 | varchar(60) | | | tree_flag | 树标识 | tinyint(4) | 0-列表结构,1-树型结构 | | show_order | 显示顺序 | int(11) | | | remark | 备注 | varchar(1024) | | | creator | 创建人 | varchar(32) | | | creation_time | 创建时间 | char(14) | 格式为yyyyMMddHHmmss | | modifier | 最后修改人 | varchar(32) | | | modified_time | 最后修改时间 | char(14) | 格式为yyyyMMddHHmmss | | valid | 合法标识 | tinyint(4) | 1-有效,0-无效 | | ts | 乐观锁 | timestamp | | ### 2.知识库数据(dt_code_data) | 知识库数据(dt_code_data) | | | | | :------------------------: | :----------------: | :-----------: | :---------------------------: | | 字段 | 字段说明 | 数据类型 | 备注 | | id | 主键(无业务含义) | varchar(20) | "CODEDATA"+18位0占位符+内部码 | | group_code | 集团编码 | varchar(40) | | | project_id | 项目id | varchar(40) | id规则:Pj+6位地区码+4位顺序码 | | type_id | 类型ID | varchar(40) | | | type_code | 类型编码 | varchar(40) | | | code | 编码 | varchar(40) | | | name | 名称 | varchar(200) | | | parent_id | 上级ID | varchar(40) | 顶级上级id为0 | | inner_code | 内部码 | varchar(255) | | | extras | 扩展属性 | varchar(2048) | | | show_order | 显示顺序 | int(11) | | | remark | 备注 | varchar(1024) | | | creator | 创建人 | varchar(32) | | | creation_time | 创建时间 | char(14) | 格式为yyyyMMddHHmmss | | modifier | 最后修改人 | varchar(32) | | | modified_time | 最后修改时间 | char(14) | 格式为yyyyMMddHHmmss | | valid | 合法标识 | tinyint(4) | 0-无效,1-有效 | | ts | 乐观锁 | timestamp | | ## DDL语句 ### 1.知识库类型 ```sql CREATE TABLE IF NOT EXISTS `dt_code_type` ( `id` varchar(40) NOT NULL, `group_code` varchar(40) DEFAULT NULL, `project_id` varchar(40) NOT NULL, `code` varchar(40) DEFAULT NULL COMMENT '编码', `name` varchar(200) DEFAULT NULL COMMENT '名称', `extras` varchar(60) DEFAULT NULL COMMENT '扩展属性', `tree_flag` tinyint DEFAULT NULL COMMENT '树标识', `show_order` int(11) DEFAULT NULL COMMENT '显示顺序', `remark` varchar(1024) DEFAULT NULL COMMENT '备注', `creator` varchar(32) DEFAULT NULL COMMENT '创建人', `creation_time` char(14) NULL DEFAULT NULL COMMENT '创建时间', `modifier` varchar(32) DEFAULT NULL COMMENT '最后修改人', `modified_time` char(14) NULL DEFAULT NULL COMMENT '最后修改时间', `valid` tinyint DEFAULT NULL COMMENT '合法标识', `ts` timestamp default current_timestamp on update current_timestamp NOT NULL COMMENT '乐观锁', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='码表类型'; ``` ### 2.知识库数据 ```sql CREATE TABLE IF NOT EXISTS `dt_code_data` ( `id` varchar(40) NOT NULL, `group_code` varchar(40) DEFAULT NULL, `project_id` varchar(40) NOT NULL, `type_id` varchar(40) DEFAULT NULL COMMENT '类型ID', `type_code` varchar(40) DEFAULT NULL COMMENT '类型编码', `code` varchar(40) DEFAULT NULL COMMENT '编码', `name` varchar(200) DEFAULT NULL COMMENT '名称', `parent_id` varchar(40) DEFAULT NULL COMMENT '上级ID', `extras` varchar(60) DEFAULT NULL COMMENT '扩展属性', `show_order` int(11) DEFAULT NULL COMMENT '显示顺序', `remark` varchar(1024) DEFAULT NULL COMMENT '备注', `creator` varchar(32) DEFAULT NULL COMMENT '创建人', `creation_time` char(14) NULL DEFAULT NULL COMMENT '创建时间', `modifier` varchar(32) DEFAULT NULL COMMENT '最后修改人', `modified_time` char(14) NULL DEFAULT NULL COMMENT '最后修改时间', `valid` tinyint DEFAULT NULL COMMENT '合法标识', `ts` timestamp default current_timestamp on update current_timestamp NOT NULL COMMENT '乐观锁', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='码表数据'; ``` # 数据字典(Deprecated)-兼容旧中台 数据字典主要用于维护系统常用且固定的数据类型,例如:性别(1:男,2:女) datetime格式:时间戳(1598495680898) ## 数据结构 ### 字典类型结构(dic\_dt\_type) | 字段 | 字段说明 | 数据类型 | 是否非空 | 备注 | | :-----------: | :----------------: | :-----------: | -------- | :-------------------------------: | | id | 主键(无业务含义) | varchar(20) | Y | id全局唯一,命名规则:“Dict”+UUID | | group_code | 集团编码 | varchar(40) | | | | type | 字典类型 | varchar(40) | Y | sex | | name | 字典类型名称 | varchar(200) | Y | 性别 | | description | 描述 | varchar(500) | | 对字典类型描述 | | valid | 状态 | int(1) | | 0:停用,1:正常 | | creation_time | 创建时间 | char(14) | | 创建时间,格式为yyyyMMddHHmmss | | creator | 创建人员 | varchar(40) | | 创建的用户id | | modified_time | 最后更新时间 | char(14) | | 最后更新时间,格式为yyyyMMddHHmmss | | modifier | 最后更新人员 | varchar(40) | | 最后更新的用户id | | remark | 备注信息 | varchar(3000) | | | | ts | 乐观锁 | timestamp | Y | | ### 字典数据结构(dic\_dt\_data) | 字段 | 字段说明 | 数据类型 | 是否非空 | 备注 | | :-----------: | :----------------: | :----------: | -------- | :------------------------: | | id | 主键(无业务含义) | varchar(40) | Y | UUID | | dict_type_id | 字典类型id | varchar(40) | Y | | | parent_id | 父节点 | varchar(40) | | 树状父节点id,没有可以不写 | | type | 字典类型 | varchar(40) | Y | 对应字典类型(sex) | | code | 编码 | varchar(40) | Y | 1 | | label | 字典标签 | varchar(40) | Y | 男 | | valid | 状态 | int(11) | Y | 0-无效,1-有效 | | creator | 创建用户 | varchar(40) | | 用户id | | creation_time | 创建时间 | char(14) | | 格式为yyyyMMddHHmmss | | modifier | 最后更新用户 | varchar(40) | | 用户id | | modified_time | 最后更新时间 | char(14) | | 格式为yyyyMMddHHmmss | | order_num | 排序 | int(11) | Y | | | remark | 备注信息 | varchar(200) | | | | ts | 乐观锁 | timestamp | Y | | ### 字典数据映射结构(dic\_dt\_data\_map) | 字段 | 字段说明 | 数据类型 | | 备注 | | :-----------: | :------------------: | :---------: | ---- | :----------------------: | | id | 主键(无业务含义) | varchar(40) | Y | 全局唯一,UUID无实际意义 | | dict_data_id | 字典数据ID | varchar(40) | Y | 对应字典数据id | | type | 字典类型 | varchar(40) | Y | 对应字典类型 | | code | 字典数据编码 | varchar(40) | Y | 字典数据编码 | | group_code | 集团编码 | varchar(40) | Y | 集团编码 | | target_code | 映射的字典数据表code | varchar(40) | Y | 1 | | label | 字典数据标签 | varchar(40) | Y | 男性 | | valid | 状态 | int(11) | Y | 0-无效,1-有效 | | order_num | 排序 | int(11) | | | | creation_time | 创建时间 | char(14) | | 格式为yyyyMMddHHmmss | | creator | 创建人员 | varchar(40) | | 用户ID | | modified_time | 最后更新时间 | char(14) | | 格式为yyyyMMddHHmmss | | modifier | 最后更新人员 | varchar(40) | | 最后更新的用户ID | | remark | 备注信息 | timestamp | Y | | ## DDL语句 ### 字典类型 ```sql CREATE TABLE IF NOT EXISTS `dic_dt_type` ( `id` varchar(40) NOT NULL, `group_code` varchar(40) DEFAULT NULL COMMENT '集团编码', `type` varchar(40) NOT NULL COMMENT '字典类型', `name` varchar(200) NOT NULL COMMENT '字典类型名称', `description` varchar(500) DEFAULT NULL COMMENT '描述', `valid` int(1) DEFAULT NULL COMMENT '状态', `remark` varchar(3000) DEFAULT NULL COMMENT '备注', `creator` varchar(40) DEFAULT NULL, `creation_time` char(14) DEFAULT NULL, `modifier` varchar(40) DEFAULT NULL, `modified_time` char(14) DEFAULT NULL, `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '乐观锁', PRIMARY KEY (`id`), KEY `index1` (`type`,`name`,`group_code`,`valid`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='字典类型'; ``` ### 字典数据 ``` CREATE TABLE IF NOT EXISTS `dic_dt_data` ( `id` varchar(80) NOT NULL, `dict_type_id` varchar(80) NOT NULL COMMENT '字典类型ID', `parent_id` varchar(80) DEFAULT NULL COMMENT '父节点', `type` varchar(80) NOT NULL COMMENT '字典类型', `code` varchar(200) NOT NULL COMMENT '字典数据编码', `label` varchar(200) NOT NULL COMMENT '字典数据标签', `valid` int(11) NOT NULL DEFAULT '1' COMMENT '状态', `creator` varchar(40) DEFAULT NULL COMMENT '创建用户', `creation_time` char(14) DEFAULT NULL COMMENT '创建时间', `modifier` varchar(40) DEFAULT NULL COMMENT '更新用户', `modified_time` char(14) DEFAULT NULL COMMENT '更新时间', `remark` varchar(200) DEFAULT NULL, `order_num` int(11) DEFAULT NULL, `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '乐观锁', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='字典数据'; ``` ### 字典数据映射 ```sql CREATE TABLE IF NOT EXISTS `dic_dt_data_map` ( `id` varchar(80) NOT NULL, `dict_data_id` varchar(80) NOT NULL COMMENT '字典数据ID', `type` varchar(40) NOT NULL COMMENT '字典类型', `code` varchar(40) NOT NULL COMMENT '字典数据编码', `group_code` varchar(11) NOT NULL COMMENT '集团编码', `target_code` varchar(40) NOT NULL COMMENT '映射字典数据表code', `label` varchar(40) NOT NULL COMMENT '字典数据标签', `valid` int(11) NOT NULL DEFAULT '1' COMMENT '状态', `creator` varchar(40) DEFAULT NULL COMMENT '创建用户', `creation_time` char(14) DEFAULT NULL COMMENT '创建时间', `modifier` varchar(40) DEFAULT NULL COMMENT '更新用户', `modified_time` char(14) DEFAULT NULL COMMENT '更新时间', `remark` varchar(200) DEFAULT NULL, `order_num` int(11) DEFAULT NULL, `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '乐观锁', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='字典数据映射表'; ```