Appearance
数据库建表规范 
- 在 
codegen/tables/base/base.sql文件中, 用户表实例:base_usrbase_deptbase_usr_dept: 
sql
------------------------------------------------------------------------ 用户
drop table if exists `base_usr`;
CREATE TABLE if not exists `base_usr` (
  `id` varchar(22) NOT NULL COMMENT 'ID',
  `img` varchar(22) NOT NULL DEFAULT '' COMMENT '头像',
  `lbl` varchar(45) NOT NULL DEFAULT '' COMMENT '名称',
  `username` varchar(45) NOT NULL DEFAULT '' COMMENT '用户名',
  `password` varchar(43) NOT NULL DEFAULT '' COMMENT '密码',
  `default_org_id` varchar(22) NOT NULL DEFAULT '' COMMENT '默认组织',
  `is_locked` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '锁定,dict:is_locked',
  `is_enabled` tinyint unsigned NOT NULL DEFAULT 1 COMMENT '启用,dict:is_enabled',
  `order_by` int unsigned NOT NULL DEFAULT 1 COMMENT '排序',
  `rem` varchar(100) NOT NULL DEFAULT '' COMMENT '备注',
  `is_hidden` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '隐藏记录',
  `tenant_id` varchar(22) NOT NULL DEFAULT '' COMMENT '租户',
  `create_usr_id` varchar(22) NOT NULL DEFAULT '' COMMENT '创建人',
  `create_usr_id_lbl` varchar(45) NOT NULL DEFAULT '' COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_usr_id` varchar(22) NOT NULL DEFAULT '' COMMENT '更新人',
  `update_usr_id_lbl` varchar(45) NOT NULL DEFAULT '' COMMENT '更新人',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `is_deleted` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '删除,dict:is_deleted',
  `delete_usr_id` varchar(22) NOT NULL DEFAULT '' COMMENT '删除人',
  `delete_usr_id_lbl` varchar(45) NOT NULL DEFAULT '' COMMENT '删除人',
  `delete_time` datetime DEFAULT NULL COMMENT '删除时间',
  INDEX (`lbl`, `tenant_id`, `is_deleted`),
  INDEX (`username`, `tenant_id`, `is_deleted`),
  INDEX (`username`, `password`, `tenant_id`, `is_deleted`),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='用户';
------------------------------------------------------------------------ 部门
drop table if exists `base_dept`;
CREATE TABLE if not exists `base_dept` (
  `id` varchar(22) NOT NULL COMMENT 'ID',
  `parent_id` varchar(22) NOT NULL DEFAULT '' COMMENT '父部门',
  `lbl` varchar(22) NOT NULL DEFAULT '' COMMENT '名称',
  `is_locked` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '锁定,dict:is_locked',
  `is_enabled` tinyint unsigned NOT NULL DEFAULT 1 COMMENT '启用,dict:is_enabled',
  `order_by` int unsigned NOT NULL DEFAULT 1 COMMENT '排序',
  `rem` varchar(100) NOT NULL DEFAULT '' COMMENT '备注',
  `org_id` varchar(22) NOT NULL DEFAULT '' COMMENT '组织',
  `org_id_lbl` varchar(45) NOT NULL DEFAULT '' COMMENT '组织',
  `tenant_id` varchar(22) NOT NULL DEFAULT '' COMMENT '租户',
  `create_usr_id` varchar(22) NOT NULL DEFAULT '' COMMENT '创建人',
  `create_usr_id_lbl` varchar(45) NOT NULL DEFAULT '' COMMENT '操作人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_usr_id` varchar(22) NOT NULL DEFAULT '' COMMENT '更新人',
  `update_usr_id_lbl` varchar(45) NOT NULL DEFAULT '' COMMENT '更新人',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `is_deleted` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '删除,dict:is_deleted',
  `delete_usr_id` varchar(22) NOT NULL DEFAULT '' COMMENT '删除人',
  `delete_usr_id_lbl` varchar(45) NOT NULL DEFAULT '' COMMENT '删除人',
  `delete_time` datetime DEFAULT NULL COMMENT '删除时间',
  INDEX (`parent_id`, `lbl`, `org_id`, `tenant_id`, `is_deleted`),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='部门';
------------------------------------------------------------------------ 用户部门
drop table if exists `base_usr_dept`;
CREATE TABLE if not exists `base_usr_dept` (
  `id` varchar(22) NOT NULL COMMENT 'ID',
  `usr_id` varchar(22) NOT NULL DEFAULT '' COMMENT '用户',
  `dept_id` varchar(22) NOT NULL DEFAULT '' COMMENT '部门',
  `order_by` int unsigned NOT NULL DEFAULT 1 COMMENT '排序',
  `tenant_id` varchar(22) NOT NULL DEFAULT '' COMMENT '租户',
  `create_usr_id` varchar(22) NOT NULL DEFAULT '' COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_usr_id` varchar(22) NOT NULL DEFAULT '' COMMENT '更新人',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `is_deleted` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '删除,dict:is_deleted',
  `delete_time` datetime DEFAULT NULL COMMENT '删除时间',
  INDEX (`usr_id`, `dept_id`, `tenant_id`, `is_deleted`),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='用户部门';其中表名
base_usr规范为[模块名]_[表名],表名为小写, 用_分隔主键名称固定为
id, 类型为varchar(22), 且不为空, 里面存储经过base64编码的uuid, 例如:sql`id` varchar(22) NOT NULL COMMENT 'ID',外键名称固定为
[表名]_id, 类型为varchar(22), 且不为空, 例如:sql`usr_id` varchar(22) NOT NULL DEFAULT '' COMMENT '用户',如果外键命名方式不是
[表名]_id, 则需要在配置文件codegen/src/tables/[模块名]/[模块名].ts中对应的列配置外键相关的配置foreignKey字段名如果是
img或者_img结尾的字段, 则该字段会被认为是图片字段, 会被自动处理为图片上传字段, 里面存储的是逗号分隔的图片uuid, 这个uuid对应的附件存储在minio中的图片, 例如:sql`img` varchar(22) NOT NULL DEFAULT '' COMMENT '头像',如果字段名不是
img也不是_img结尾, 但是需要被处理为图片上传字段, 则需要在配置文件codegen/src/tables/[模块名]/[模块名].ts中对应的列配置图片上传相关的配置isImg如果字段的长度是
varchar(22), 则只能存储1张图片, 如果是varchar(46), 则可以存储2张图片, 以此类推, 存储图片的最大数量是varchar的长度是23的倍数
锁定功能的字段名固定为is_locked, 如果一张表需要锁定功能, 则需要在表中添加is_locked字段, 例如:sql`is_locked` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '锁定,dict:is_locked',同理, 这些字段名也是固定的:
sql`is_enabled` tinyint unsigned NOT NULL DEFAULT 1 COMMENT '启用,dict:is_enabled', `order_by` int unsigned NOT NULL DEFAULT 1 COMMENT '排序', `rem` varchar(100) NOT NULL DEFAULT '' COMMENT '备注', `is_hidden` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '隐藏记录', `tenant_id` varchar(22) NOT NULL DEFAULT '' COMMENT '租户', `create_usr_id` varchar(22) NOT NULL DEFAULT '' COMMENT '创建人', `create_usr_id_lbl` varchar(45) NOT NULL DEFAULT '' COMMENT '创建人', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_usr_id` varchar(22) NOT NULL DEFAULT '' COMMENT '更新人', `update_usr_id_lbl` varchar(45) NOT NULL DEFAULT '' COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `is_deleted` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '删除,dict:is_deleted', `delete_usr_id` varchar(22) NOT NULL DEFAULT '' COMMENT '删除人', `delete_usr_id_lbl` varchar(45) NOT NULL DEFAULT '' COMMENT '删除人', `delete_time` datetime DEFAULT NULL COMMENT '删除时间',is_enabled字段用于标记记录是否启用, 0: 禁用, 1: 启用order_by字段用于排序rem字段用于备注is_hidden字段用于标记记录是否隐藏, 0: 显示, 1: 隐藏, 在前端列表中不显示的记录tenant_id字段用于标记这张表是否需要进行租户隔离org_id字段用于标记这张表是否需要进行组织隔离create_usr_id字段用于标记创建人create_usr_id_lbl字段用于标记创建人名称, 冗余字段create_time字段用于标记创建时间update_usr_id字段用于标记更新人update_usr_id_lbl字段用于标记更新人名称, 冗余字段update_time字段用于标记更新时间is_deleted字段用于标记记录是否删除, 0: 未删除, 1: 已删除delete_usr_id字段用于标记删除人delete_usr_id_lbl字段用于标记删除人名称, 冗余字段delete_time字段用于标记删除时间