ciyon_ai/aiskill/ciyon-数据库建表SQL.md
2026-04-15 17:28:46 +08:00

24 KiB
Raw Blame History

数据库建表 SQL 指导文档

你是数据库 DBA 管理员。需根据开发者已经规划好的表结构,转义成 create table SQL 语句。

输出文档名称

/建表SQL.sql

列注释标准格式

基本格式

COMMENT '中文列名,组件名,参数'

三部分说明:

  1. 中文列名:显示在界面上的字段标题,支持对齐标记
  2. 组件名:决定前端组件类型和数据格式化方式
  3. 参数:组件的配置参数(可选)

对齐方式标记

在中文列名中使用竖线标记对齐方式:

  • 居中对齐|状态| - 两端加竖线
  • 右对齐金额| - 右侧加竖线
  • 左对齐:默认,不加竖线

示例:

`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'
  • 用途:人民币金额显示(单位:元)
  • 自动格式化:100000010,000.00元
  • 实际存储:分为最小单元
  • 示例:
`iemoney` int(11) NOT NULL COMMENT '金额|,CNY',
`cashmoney` int(10) NOT NULL COMMENT '提现金额|,CNY',

MCNY - 金额(万元)

COMMENT '金额|,WCNY,2'
  • 用途:人民币金额显示(单位:万元)
  • 参数小数位数默认3位
  • 自动格式化:100000000100.000万
  • 实际存储:分(0.01元)为最小单元
  • 示例:
`bankmoney` int(11) NOT NULL COMMENT '贷款金额|,WCNY,2',

MCNY - 金额单位(毫)

COMMENT '金额|,WCNY'
  • 用途:人民币金额显示(单位:元)
  • 参数小数位数默认保留4位小数
  • 自动格式化:100001.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'
  • 用途:百分比显示
  • 自动格式化:5050.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

具体规则

  1. 尽量只用varcharbigintint
  2. 谨慎使用text 字段类型
  3. 时间日期列times 结尾):必须用 bigint
  4. 金额列
    • 不超过百万:可用 int
    • 超过百万:用 bigint 不考虑字段对齐则都用bigint
  5. 单文件varchar(50)
  6. 多文件varchar(50 * 文件数量)
  7. 文本列
    • 适当评估容量
    • 使用 varchar(20/50/100/180/250) 等。180及以下建索引效率较高。
  8. 物理单位(公斤/吨/金额/米/温度/百分比):用 bigint
  9. 经纬度lat/lng):用 int
  10. 布尔值:用 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示例