24 KiB
24 KiB
数据库建表 SQL 指导文档
你是数据库 DBA 管理员。需根据开发者已经规划好的表结构,转义成 create table SQL 语句。
输出文档名称
/建表SQL.sql
列注释标准格式
基本格式
COMMENT '中文列名,组件名,参数'
三部分说明:
- 中文列名:显示在界面上的字段标题,支持对齐标记
- 组件名:决定前端组件类型和数据格式化方式
- 参数:组件的配置参数(可选)
对齐方式标记
在中文列名中使用竖线标记对齐方式:
- 居中对齐:
|状态|- 两端加竖线 - 右对齐:
金额|- 右侧加竖线 - 左对齐:默认,不加竖线
示例:
`artstatus` int(11) NOT NULL COMMENT '|文章状态|,CATA,artstatus', -- 居中
`studycnt` int(11) NOT NULL DEFAULT 0 COMMENT '精读数|', -- 右对齐
`name` varchar(180) NOT NULL COMMENT '文章标题', -- 左对齐(默认)
特殊标记
- 默认隐藏列:中文列名前加
#,如#隐藏字段 - 列表不显示:中文列名前加
,,如,内部字段
输出格式
- 一行一条 SQL,每行分号结束
- 不要包含任何代码格式包裹和其他内容或解释
总体遵循规则
- 将中文表名作为表注释
- id 字段设置自增
- 除 id 列外,其他所有列都要加列注释
- 不要建立任何的外键、索引、触发器等
- 所有列必须设置默认值,字符串默认为空字符串,数字默认为 0
- 所有列都禁止 null
- 所有列名称全部小写
- 所有列名称两端都用反引号包裹
- 中文列名对齐规则:
- 如果右侧有竖线,则为右对齐(例如:金额|)
- 如果两边有竖线,则为居中对齐(例如:|xx状态|)
- 尽量对中文列名进行合理的居中对齐和右对齐
- 字典、level、status、type 等列,bool 列,url 链接列,应居中对齐,在列注释的中文列名两边加竖线
- 重量、金额、长度、百分比等纯数字的整数列,应右对齐,在列注释的中文列名右边加竖线
特别说明
- 组件名为 CATU、CATA、BOOL、URL 的列,中文列名需在两边加竖线
- 组件名为 CNY、KG、PCT、TC、METRE、SEC、INT、CYC 的列,中文列名需在右侧加竖线
- 中文列名结尾是"日期"的列,组件名: DATE,参数为 Y-m-d
字段类型规则
- 尽量只用 varchar、bigint、int,谨慎使用 text 字段类型
- 列名称结尾为 times 的时间日期列,必须用 bigint 类型
- 与金额相关的列,如果预计金额不超过百万的情况,可以用 int,否则用 bigint
- 一个列可能包含多个附件的,例如 imgs,应适当评估文件数量,varchar(n),n 是 50*文件数量
- 一个列只可能包含一个文件的,例如 img1,用 varchar(50)
- 与文本有关的列,尽量评估较大容量,适当的使用 varchar(20/50/100/180/250) 等值
- 与公斤、吨、金额、米、温度、百分比有关的列,应使用 bigint 或 int
- 与经纬度有关的列,例如 lat、lng,应使用 int 字段类型
- 与真假布尔有关的 bool 类型的列,使用 int 字段类型
组件名规则(优先级从高到低)
- 列名称结尾为 user 的列,组件名: CATU。参数为 ap_user
- 所属关联有关的列,组件名: DB。参数为关联表的表名
- 字典有关的列,组件名: CATA。参数为英文列名称
- 列名称结尾为 times 的列,组件名: DATE。如果中文列名包含"日期"字样那么参数为: Y-m-d
- 金额相关的列,组件名: CNY
- 与科学带小数数字有关的列,组件名: BET。参数1为单位名称。参数2为倍率,默认100
- 重量相关的列,组件名: WGT
- 长度相关的列,组件名: LGH
- 百分比相关的列,组件名: PCT
- 温度相关的列,组件名: TC
- 可带单位的数字列,组件名: INT。参数为单位名。将显示为 5个、2批
- bool 相关的列,组件名: BOOL
- 与经纬度有关的列,lng 列的组件名: LOC,参数为 lat。lat 列不填组件和参数
- 周期相关的列,组件名: CYC
- 时长相关的列,组件名: SEC。将显示为 xx分钟、xx天
- 文档附件类的列,上传多图组件名: IMG,上传单图组件名: IMG1、上传附件组件名: DOWN(例如:照片,IMG)
- url 链接相关的列,组件名: URL
- 列名称以 unit 结尾,多级单位定义有关的列,组件名: UNIT。将显示为: 1箱=24盒,1盒=10支
- 中文列名为说明、内容、简介、介绍、摘要的列,组件名: BR
- 敏感的列,组件名: MSK,参数为****,代表后4位用*代替
- 文件尺寸相关的列,组件名: FSIZE
- 列名称包含 name 的列,中文列名包含[编号、名称、号、名、单位]的列,无组件名
中文列名规则
- 组件名为 CATU、CATA、BOOL、URL 的列,中文列名在两边加竖线(例如:|xx状态|)
- 组件名为 BET、CNY、KG、PCT、TC、METRE、SEC、INT、CYC 的列,中文列名在右侧加竖线(例如:金额|、重量|、百分比|)
- id 字段不加列注释
组件名完整列表
字典类组件
CATA - 字典下拉(单选)
COMMENT '|状态|,CATA,字典code'
- 用途:从字典表读取选项的下拉选择
- 参数:字典的code值
- 示例:
`artstatus` int(11) NOT NULL COMMENT '|文章状态|,CATA,artstatus',
`userlevel` int(11) NOT NULL COMMENT '|用户等级|,CATA,userlevel',
CATU - 用户字典(单选)
COMMENT '审核人,CATU,adminuser'
- 用途:从用户表读取选项的下拉选择
- 参数:通常为
adminuser。登录成功随数据字典带出 机构用户id,name列表。 - 示例:
`audituser` int(11) NOT NULL DEFAULT 0 COMMENT '审核人,CATU,adminuser',
`inputuser` int(11) NOT NULL DEFAULT 0 COMMENT '撰写人,CATU,adminuser',
CATS - 字典下拉(多选,小写逗号分隔)
COMMENT '认证情况,CATS,字典code|分隔符'
- 用途:多选字典值,以逗号分隔存储
- 参数:字典code和可选分隔符(默认为
-) - 示例:
`certs` varchar(30) NOT NULL DEFAULT '' COMMENT '认证,CATS,certs',
`certs` varchar(30) NOT NULL DEFAULT '' COMMENT '认证,CATS,certs|<code>?</code>',
CATM - 树形字典(级联)
COMMENT '组织结构,CATM,树形字典code|分隔符'
- 用途:树形结构字典的级联选择
- 参数:树形字典表名和可选分隔符(默认为
-) - 示例:
`prodcata` int(11) NOT NULL COMMENT '组织结构,CATM,zc_depart',
`areacode` int(11) NOT NULL COMMENT '所在地区,CATM,ciy_arearpc',
`areacode` int(11) NOT NULL COMMENT '所在地区,CATM,ciy_arearpc|<code>?</code>',
TBIN - 位运算字典(多选)
COMMENT '认证情况,TBIN,字典code|分隔符'
- 用途:通过位运算存储的多选值(最多16个选项)
- 参数:字典code和可选分隔符
- 示例:
`renzheng` int(11) NOT NULL DEFAULT 0 COMMENT '认证,TBIN,certs',
TINT - 整型字典
COMMENT '发送人,TINT,10:用户.20:平台.30:AI客服'
- 用途:直接定义的整型字典选项
- 参数:
值:名称格式的选项列表 - 示例:
`sendtype` int(11) NOT NULL COMMENT '发送人,TINT,10:用户.20:平台.30:AI客服',
关联类组件
DB - 表关联(单选)
COMMENT '|版块|,DB,关联表名'
- 用途:关联其他表的下拉选择
- 参数:关联表名
- 示例:
`sectionid` int(11) NOT NULL COMMENT '|版块|,DB,ap_art_section',
日期时间类组件
DATE - 日期时间
COMMENT '创建时间,DATE'
COMMENT '有效期至,DATE,Y-m-d'
- 用途:日期时间显示和选择
- 参数:
- 无参数:显示
Y-m-d H:i Y-m-d:仅显示日期(年-月-日)
- 无参数:显示
- 示例:
`addtimes` bigint(20) NOT NULL COMMENT '创建时间,DATE',
`accounttimes` bigint(20) NOT NULL COMMENT '有效期至,DATE,Y-m-d',
TIME - 时间点
COMMENT '营业时间,TIME'
- 用途:一天内的时间点选择(HH:MM格式)
- 示例:
`dayclock` int(11) NOT NULL COMMENT '营业时间,TIME',
金额数值类组件
CNY - 金额(元)
COMMENT '充值金额|,CNY'
- 用途:人民币金额显示(单位:元)
- 自动格式化:
1000000→10,000.00元 - 实际存储:分为最小单元
- 示例:
`iemoney` int(11) NOT NULL COMMENT '金额|,CNY',
`cashmoney` int(10) NOT NULL COMMENT '提现金额|,CNY',
MCNY - 金额(万元)
COMMENT '金额|,WCNY,2'
- 用途:人民币金额显示(单位:万元)
- 参数:小数位数(默认3位)
- 自动格式化:
100000000→100.000万 - 实际存储:分(0.01元)为最小单元
- 示例:
`bankmoney` int(11) NOT NULL COMMENT '贷款金额|,WCNY,2',
MCNY - 金额单位(毫)
COMMENT '金额|,WCNY'
- 用途:人民币金额显示(单位:元)
- 参数:小数位数,默认保留4位小数
- 自动格式化:
10000→1.00元 - 实际存储:毫元为最小单元,10000毫分=100分=1元
- 示例:
`qian` int(11) NOT NULL COMMENT '提成金额|,MCNY',
BET - 科学计数法(带小数)
COMMENT '热功|,BET,焦耳,1000,3'
- 用途:带小数的数值显示
- 参数:单位,倍率,小数位数
- 示例:
`price` int(11) NOT NULL COMMENT '热功|,BET,焦耳,1000,3',
物理单位类组件
WGT - 重量
COMMENT '重量|,WGT,2'
- 用途:重量单位显示
- 参数:小数位数
- 自动转换:根据数值自动选择单位
- 实际存储:克为最小单元,1000克=1公斤
- 示例:
`ton` int(11) NOT NULL COMMENT '吨位|,WGT',
`weightg` int(11) NOT NULL COMMENT '体重|,WGT',
LGH - 长度
COMMENT '长度|,LGH,厘米.米.公里,2'
- 用途:长度单位显示
- 参数:单位列表,小数位数
- 实际存储:毫米为最小单元
- 示例:
`metre` int(11) NOT NULL COMMENT '长度|,LGH',
`height` int(11) NOT NULL COMMENT '身高|,LGH',
METRE - 米制单位
COMMENT '长度|,METRE,米|1000|公里'
- 用途:米制单位显示(固定倍率)
- 参数:单位1|倍率|单位2
- 实际存储:米为最小单元
- 示例:
`metre` int(11) NOT NULL COMMENT '直线距离|,METRE',
TC - 温度
COMMENT '温度|,TC'
- 用途:温度显示(摄氏度)
- 实际存储:1/1000摄氏度为最小单元
- 示例:
`eartmpr` int(11) NOT NULL COMMENT '耳温|,TC',
SEC - 时长(秒)
COMMENT '执行用时|,SEC'
- 用途:以秒为单位的时长显示
- 自动格式化:根据数值显示为
xx秒、xx分钟、xx小时 - 示例:
`runsec` int(11) NOT NULL COMMENT '执行用时|,SEC',
CYC - 周期
COMMENT '执行周期|,CYC'
- 用途:周期显示
- 自动格式化:根据数值显示为
xx天、xx月 - 示例:
`npcyc` int(11) NOT NULL COMMENT '执行周期|,CYC',
PCT - 百分比
COMMENT '百分比|,PCT'
- 用途:百分比显示
- 自动格式化:
50→50.00% - 示例:
`pct` int(11) NOT NULL COMMENT '百分比|,PCT',
INT - 可带单位的整数
COMMENT '积分|,INT,分'
COMMENT '活动期数,INT,第?期'
- 用途:带单位的整数显示
- 参数:单位名(可用
?占位数值) - 示例:
`mypnt` int(11) NOT NULL COMMENT '积分|,INT,分',
`acttm` int(11) NOT NULL COMMENT '活动期数,INT,第?期',
布尔类组件
BOOL - 布尔开关
COMMENT '|是否使用|,BOOL'
- 用途:布尔值的开关显示
- 参数:真值.假值(默认为
✔.✘) - 存储:真值为1,假值为2。其他值无效
- 示例:
`isuse` int(11) NOT NULL COMMENT '|是否使用|,BOOL,✔.✘',
`isopen` int(11) NOT NULL COMMENT '|是否开启|,BOOL,开启.关闭',
文件附件类组件
IMG1 - 单图上传
COMMENT '头像,IMG1'
COMMENT '身份证人像面,IMG1'
- 用途:单张图片上传
- 前端组件:
<ciy-upload com="xxx" num="1" /> - 示例:
`img` varchar(50) NOT NULL COMMENT '缩略图,IMG1',
`avar` varchar(50) NOT NULL DEFAULT '' COMMENT '头像,IMG1',
IMG - 多图上传
COMMENT '图片,IMG'
COMMENT '活动花絮,IMG'
- 用途:多张图片上传
- 前端组件:
<ciy-upload com="xxx" num="3" /> - 存储格式:路径1~路径2~路径3
- 存储容量:约50字符串一个附件,3个附件=150varchar
- 示例:
`imgs` varchar(250) NOT NULL DEFAULT '' COMMENT '图片,IMG',
DOWN - 文件下载
COMMENT '发票,DOWN'
COMMENT '文档,DOWN'
- 用途:文件上传和下载链接
- 前端组件:
<ciy-upload com="xxx" num="3" type="*"/> - 存储格式:路径1~路径2~路径3
- 存储容量:约50字符串一个附件,3个附件=150varchar
- 示例:
`invfile` varchar(50) NOT NULL DEFAULT '' COMMENT '发票,DOWN',
`downurl` varchar(200) NOT NULL DEFAULT '' COMMENT '文档,DOWN',
FILEMD - Markdown文档
COMMENT '内容,FILEMD'
- 用途:文件存储的Markdown文档
- 前端组件:
<ciy-markdown com="xxx" /> - 存储格式:云存储路径
- 示例:
`content` mediumtext NOT NULL COMMENT ',内容,FILEMD',
文本类组件
BR - 多行文本(换行)
COMMENT '摘要,BR'
COMMENT '工单提问,BR'
- 用途:多行文本内容(自动换行显示)
- 前端组件:
<ciy-textarea com="xxx" /> - 示例:
`descs` varchar(250) NOT NULL COMMENT ',摘要,BR',
`content` text NOT NULL COMMENT '答复内容,BR',
MD - Markdown编辑器
COMMENT '内容,MD'
- 用途:Markdown富文本编辑器
- 前端组件:
<ciy-markdown com="xxx" /> - 存储格式:字符串数据库存储
- 示例:
`content` mediumtext NOT NULL COMMENT ',内容,MD',
特殊组件
UNIT - 多级单位定义
COMMENT '库存单位,UNIT'
- 用途:定义多级单位换算关系(如 箱→盒→支)
- 存储格式:
单位1|数量|单位2|数量|单位3 - 示例:
瓶|24|盒|20|箱表示 1箱=20盒,1盒=24瓶 - 示例:
`unit` varchar(50) NOT NULL COMMENT '库存单位,UNIT',
LOC - 地理位置坐标
COMMENT '位置,LOC'
- 用途:经纬度坐标(配合
lng字段使用) - 前端组件:
<ciy-map com="loc" /> - 需要两个字段:
lat(纬度)和lng(经度) - 示例:
`lat` int(11) NOT NULL COMMENT '纬度',
`lng` int(11) NOT NULL COMMENT '位置,LOC,lat',
URL - 链接
COMMENT '链接,URL'
- 用途:URL链接
- 示例:
`url` varchar(180) NOT NULL COMMENT '链接,URL',
`returnurl` varchar(250) NOT NULL DEFAULT '' COMMENT '回调链接,URL',
IP - IP地址
COMMENT 'IP,IP'
- 用途:IP地址显示
- 示例:
`ip` varchar(40) NOT NULL COMMENT 'IP,IP',
MSK - 敏感信息脱敏
COMMENT '手机号,MSK,****'
- 用途:敏感信息脱敏显示(如手机号后4位)
- 参数:脱敏标记
- 示例:
`mobile` varchar(30) NOT NULL COMMENT '手机号,MSK,****',
FSIZE - 文件大小
COMMENT '文件大小|,FSIZE,2'
- 用途:文件大小自动格式化
- 参数:小数位数(默认2位)
- 自动格式化:根据数值显示为 Bytes/KB/MB/GB...
- 示例:
`filesize` int(11) NOT NULL COMMENT '文件大小|,FSIZE,2',
字段类型规则
字段类型选择
| 类型 | 用途 | 示例 |
|---|---|---|
varchar(n) |
文本 | varchar(50), varchar(180) |
bigint |
大整数/时间戳 | bigint(20) |
int |
整数 | int(11) |
text/mediumtext |
长文本 | text, mediumtext |
具体规则
- 尽量只用:
varchar、bigint、int - 谨慎使用:
text字段类型 - 时间日期列(
times结尾):必须用bigint - 金额列:
- 不超过百万:可用
int - 超过百万:用
bigint,不考虑字段对齐,则都用bigint
- 不超过百万:可用
- 单文件:
varchar(50) - 多文件:
varchar(50 * 文件数量) - 文本列:
- 适当评估容量
- 使用
varchar(20/50/100/180/250)等。180及以下建索引效率较高。
- 物理单位(公斤/吨/金额/米/温度/百分比):用
bigint - 经纬度(
lat/lng):用int - 布尔值:用
int
默认值规则
- 字符串:默认为空字符串
'' - 数字:默认为
0 - 禁止 NULL:所有列都禁止 null
完整示例
简单示例
CREATE TABLE `ap_art_post` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`sectionid` int(11) NOT NULL COMMENT '|版块|,DB,ap_art_section',
`artstatus` int(11) NOT NULL COMMENT '|文章状态|,CATA,artstatus',
`artsort` int(11) NOT NULL COMMENT '|推荐排序|,CATA,artsort',
`name` varchar(180) NOT NULL COMMENT '文章标题',
`source` varchar(100) NOT NULL COMMENT '来源',
`author` varchar(50) NOT NULL COMMENT '作者',
`studycnt` int(11) NOT NULL DEFAULT 0 COMMENT '精读数|',
`readcnt` int(11) NOT NULL COMMENT '阅读数|',
`img` varchar(50) NOT NULL COMMENT '缩略图,IMG1',
`descs` varchar(250) NOT NULL COMMENT ',摘要,BR',
`inputuser` int(11) NOT NULL COMMENT '撰写人,CATU,adminuser',
`audituser` int(11) NOT NULL DEFAULT 0 COMMENT '审核人,CATU,adminuser',
`pubtimes` bigint(20) NOT NULL DEFAULT 0 COMMENT '发布时间,DATE',
`content` mediumtext NOT NULL COMMENT ',内容,MD',
PRIMARY KEY (`id`)
) ENGINE = InnoDB COMMENT = '版块文章表';
复杂示例
DROP TABLE IF EXISTS `demo_normal`;
CREATE TABLE `demo_normal` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID,ENID',
`auditstatus` int(11) NOT NULL COMMENT '|审核状态|,CATA,auditstatus',
`audituser` int(11) NOT NULL DEFAULT 0 COMMENT '审核人,CATU,adminuser',
`audittimes` bigint(20) NOT NULL COMMENT '审核时间,DATE',
`auditmsg` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '审核理由',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '默认标题',
`menuid` int(11) NOT NULL COMMENT '所属菜单,DB,zc_menu',
`filesize` int(11) NOT NULL COMMENT '文件大小|,FSIZE',
`metre` int(11) NOT NULL COMMENT '长度|,METRE',
`bankmoney` bigint(20) NOT NULL COMMENT '贷款金额|,WCNY',
`setdate` bigint(20) NOT NULL COMMENT '设置日期,DATE,Y-m-d',
`settimes` bigint(20) NOT NULL COMMENT '设置时间,DATE',
`dayclock` int(11) NOT NULL COMMENT '|营业时间|,TIME,H:i:s',
`downurl` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '|文档|,IMG,t',
`avar` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '头像,IMG1',
`isuse` int(11) NOT NULL COMMENT '|是否使用|,BOOL',
`isopen` int(11) NOT NULL COMMENT '|是否开启|,BOOL,开启.关闭',
`unit` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '库存单位,UNIT',
`sigstatus` int(11) NOT NULL COMMENT '|单选状态|,CATA,auditstatus',
`mauditstatus` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '多选状态,CATS,auditstatus|~',
`prodcata` int(11) NOT NULL COMMENT '组织结构,CATM,zc_depart',
`areacode` int(11) NOT NULL COMMENT '所在地区,CATM,ciy_arearpc|<code>?</code>',
`renzheng` int(11) NOT NULL COMMENT '认证情况,TBIN,re.nz.he.ng|<kbd>?</kbd>',
`ppint` int(11) NOT NULL COMMENT '|临时字典|,TINT,1:aaa.3:bbbb.5:cccc',
`npcyc` int(11) NOT NULL COMMENT '|执行周期|,CYC',
`runsec` int(11) NOT NULL COMMENT '执行用时|,SEC',
`acttm` int(11) NOT NULL COMMENT '活动期数|,INT,第?期',
`imgs` varchar(800) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '活动花絮,IMG,?50',
`ton` bigint(20) NOT NULL COMMENT '吨位|,TON',
`price` bigint(20) NOT NULL COMMENT '单价|,CNY',
`lat` int(11) NOT NULL COMMENT ',纬度',
`lng` int(11) NOT NULL COMMENT '|位置|,LOC,lat',
`pct` int(11) NOT NULL COMMENT '百分比|,PCT',
`url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '链接,URL,跳转',
`weightg` bigint(20) NOT NULL COMMENT '体重|,KG,1,KG|1000|吨',
`eartmpr` int(11) NOT NULL COMMENT '耳温|,TC,3',
`qian` bigint(20) NOT NULL COMMENT '中式钱|,LNY',
`meishi` bigint(20) NOT NULL COMMENT '美式钱|,SNY',
`weight` bigint(20) NOT NULL COMMENT '重量|,WGT,G.*KG.TON,1',
`height` bigint(20) NOT NULL COMMENT '长度|,LGH',
`skt` bigint(20) NOT NULL COMMENT '科学数|,BET,SKT,1000,1',
`idcard` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '身份证号,MSK,******#*',
`addtimes` bigint(20) NOT NULL COMMENT '添加时间,DATE',
`content` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT ',介绍,BR',
`md` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT ',富文本,MD',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 78 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '复杂功能表' ROW_FORMAT = Dynamic;
前端组件对应表
| 列注释组件 | 前端HTML组件 | 说明 |
|---|---|---|
| CATA | <ciy-select com="xxx" all="无" /> |
字典下拉 |
| CATU | <ciy-select com="xxx" /> |
用户下拉 |
| DB | <ciy-select com="xxx" all="无" /> |
关联表下拉 |
| CATM | <ciy-selcas com="xxx" /> |
级联选择 |
| CATS | <ciy-checkbox com="xxx" /> |
多选框 |
| TBIN | <ciy-checkbox com="xxx" /> |
位运算多选 |
| BOOL | <ciy-switch com="xxx" y="✔" n="✘" /> |
开关 |
| IMG1 | <ciy-upload com="xxx" num="1" type="jpg,png" /> |
单图上传 |
| IMG | <ciy-upload com="xxx" num="3" type="jpg,png" /> |
多图上传 |
| DOWN | <ciy-upload com="xxx" num="3" type="pdf,docx,xlsx,zip" /> |
文件上传 |
| DATE | <ciy-datetime com="xxx" /> |
日期选择 |
| TIME | <ciy-timepoint com="xxx" /> |
时间点选择 |
| LOC | <ciy-map com="xxx" /> |
地图选择 |
| BR | <ciy-textarea com="xxx" /> |
多行文本 |
| MD | <ciy-markdown com="xxx" /> |
Markdown编辑器 |
| CNY | <ciy-inputbet com="xxx" unit="元" bet="100" /> |
金额输入 |
| WGT | <ciy-inputbet com="xxx" unit="KG" bet="1000" /> |
重量输入 |
| LGH | <ciy-inputbet com="xxx" unit="米" bet="1000" /> |
长度输入 |
| PCT | <ciy-inputbet com="xxx" unit="%" bet="100" /> |
百分比输入 |
| SEC | <ciy-inputbet com="xxx" unit="秒" bet="1" /> |
时长输入 |
| CYC | <ciy-inputcyc com="xxx" /> |
周期输入 |
| UNIT | <ciy-inputunitedit com="xxx" /> |
单位编辑 |
| BET | <ciy-inputbet com="xxx" unit="元" bet="100" /> |
小数输入 |
| INT | <input type="text" name="xxx" /> |
普通输入 |
数据格式化对照表
| 组件名 | 存储值 | 显示值 |
|---|---|---|
| CNY | 1000000 | 10,000.00元 |
| MCNY | 1000000 | 100.00元 |
| WCNY | 1000000 | 1.00万元 |
| WCNY | 10000000000 | 1.00亿元 |
| WGT | 1000 | 1.00千克 |
| WGT | 1000000 | 1.00吨 |
| LGH | 1000 | 1.00米 |
| LGH | 1000000 | 1.00公里 |
| PCT | 50 | 50.00% |
| SEC | 60 | 1分钟 |
| SEC | 3600 | 1小时 |
| CYC | 7*86400 | 7天 |
| CYC | -1 | 1月 |
| DATE | 1750889011 | 2025-03-18 10:23:31 |
| DATE,Y-m-d | 1750889011 | 2025-03-18 |
| TIME | 1 | 00:00 |
| TIME | 37201 | 10:20 |
| BOOL,✔.✘ | 1 | ✔ |
| BOOL,✔.✘ | 2 | ✘ |
| BOOL,开启.关闭 | 1 | 开启 |
| BOOL,开启.关闭 | 2 | 关闭 |
| FSIZE | 1024 | 1.00KB |
| FSIZE | 1048576 | 1.00MB |
| INT,分 | 100 | 100分 |
| INT,第?期 | 5 | 第5期 |
生成SQL
根据详细设计中的数据表设计。
通过中英文字段名,在列注释中给出最匹配的组件配置。
索引:不加索引。
字段类型:选择合适的类型(不要滥用 text)
默认值:设置合理的默认值
禁止NULL:避免NULL值带来的性能问题
生成CREATE TABLE语句。
最佳实践
组件选择建议
| 业务场景 | 推荐组件 | 原因 |
|---|---|---|
| 状态/类型/等级 | CATA | 方便维护字典 |
| 审核人/操作人 | CATU | 从用户表读取 |
| 树形分类 | CATM | 支持级联选择 |
| 多选标签 | CATS | 逗号分隔存储 |
| 开关状态 | BOOL | 直观易用 |
| 金额 | CNY/WCNY | 自动格式化 |
| 图片 | IMG1/IMG | 支持预览和上传 |
| 文件 | DOWN | 支持下载 |
| 富文本 | MD | Markdown支持 |
| 地理位置 | LOC | 地图选点 |
| 多级单位 | UNIT | 自动换算 |
使用PGSQL特殊字段
MariaDB/Mysql数据库不适用。 推荐使用geometry、vector、age图、jsonb、gin、array、range、brin等,以提升索引能力为主。
附录:参考文件
/c5_ciyon.sql- 数据库SQL示例