0

0

MySQL数据库设计初步规范V1.0_MySQL

php中文网

php中文网

发布时间:2016-06-01 13:04:00

|

1603人浏览过

|

来源于php中文网

原创

数据库设计规范:
 

1,表设计规范

1.1关于表设计

a) 表名、列名必须有注释。

b) 命名应使用富有意义的英文词汇或者缩写,多个单词组成的,全部大写,以"_"分隔开来,只能使用英文字母,数字和下划线,不留空格。比如USER_DETALL,不允许使用关键字TYPE或者STATUS等来作为字段名。

c) 命名长度不超过15个字符为宜(避免超过20),应该反映数据集所在的业务范围,或者业务功能,如POWER_USER(用户中心)等。

d) 当字段类型为枚举或者布尔型时,使用 CHAR(1)(或者CHAR(2))类型,填写默认值,状态字段的默认值不能为null一般是设置成0或者-1,状态字段的描述写成 comment '团购券状态:1.已购买;2.已使用;3.退款中;4已退款'。

e) 在设计时候尽量包含日期字段:CREATE_DATE(创建日期),UPDATE_DATE(更新日期)等。mysql中对日期约定一种录入方式,如'2014-12-31 00:00:00.0'

f) 默认值,数字类型默认值为0,字符串默认值为’’,日期默认值为’1900-01-01 00:00:00.0’。

g) 主键字段ID用bigint,如果create语句中有AUTO_INCREMENT=6653864标示,请去掉。

h) 日期字段的默认值也不能为null,一般设置成1970-12-31 00:00:00.0。

i) 手机字段,邮箱字段等会被检索的字段不允许为null,默认值为空串’’。数字类型字段不允许为null默认值为0。

j) 默认字符编码为utf8,默认存储引擎为INNODB

PS:每个表必须有主键字段,必须有录入日期字段并且值不允许为NULL。

1.2 索引设计

1) 普通索引,以IDX_开头连接字段名字。

2) 值范围重复的比例少的,建立索引字段,比如 CREATE_DATE(录入时间)字段;值范围重复比率的字段不需要建立索引比如IS_RETURN(是否已退款)字段。

3) 主键字段不需要建立unique key,主键字段也不需要单独建索引。

4) WHERE条件后面的经常查询的字段,需要加索引,比如ORDER_GOODS 表的ORDER_SN(商品号)等。

5) 范围字段不需要加索引,比如SHOP_MALL表的IS_DEL字段等。

6) 建立索引的字段,要求不能有null值,否则会影响索引的效率。

1.3表结构范例

建表语句范例:

CREATE TABLE `SHOP_GAY` (

`ID` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '店铺ID',

`SHOP_NAME` VARCHAR(50) DEFAULT '' COMMENT '店铺名称',

`LEGAL_PERSON_MOBILE` VARCHAR(11) DEFAULT NULL COMMENT '法人移动电话',

`SCORE` BIGINT(20) DEFAULT 0 COMMENT '积分',

......

`MANAGER_NAME` VARCHAR(20) DEFAULT '' COMMENT '店长姓名',

`BRIEF` VARCHAR(500) DEFAULT '' COMMENT '店铺简介',

`HAS_WAREHOUSE` CHAR(1) DEFAULT '0' COMMENT '是否有仓库, 0:没有; 1:有 ',

`DESCRIPTION_FIT` DECIMAL(3,1) DEFAULT 0 COMMENT '描述相符--通过对所有订单商品的评价计算平均值取一位小数得到',

`BACKGROUND` VARCHAR(200) DEFAULT '' COMMENT '店铺标题图片',

发卡宝-卡密寄售系统
发卡宝-卡密寄售系统

发卡宝是一个专业的软件卡密等虚拟商品在线交易平台,拥有多种兑换方式,费率低,结算快,正规企业平台一直稳定运营,24小时不间断提供自动发卡服务。【模板说明】试用版自带一套模板(响应式)【环境支持】PHP环境 / 200M或以上空间大小 / 开启父路径 / 设置index.php为默认首页 / 目录写入权限需要开启【数据库】MySQL【安装步骤】将文件上传至空间目录,运行“http://域名/inst

下载

`CREATED_DATE` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

`UPDATED_DATE` DATETIME DEFAULT '1970-12-31 00:00:00.0' COMMENT '更新时间',

PRIMARY KEY (`ID`),

KEY IDX_MOB(LEGAL_PERSON_MOBILE),

KEY IDX_CRETIME(CREATED_DATE),

KEY IDX_UPTIME(UPDATED_DATE)

) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='GAY店铺'

添加字段范例:

ALTER TABLE AUTH_MALL ADD COLUMN SHORT_NAME VARCHAR(20) DEFAULT '' COMMENT '广场名简写' AFTER FULL_NAME;

修改表字段范例:

ALTER TABLE GATEWAY_PAYMENT_ORDER MODIFY COLUMN STAT varchar(2) DEFAULT '0'

comment '交易状态 0:待支付/退款,1:等待第三方渠道回调,2:支付/退款成功,3:支付/退款失败,4:支付/退款确认成功,5:支付/退款确认失败,6;交易关闭,7:待收款(如果是此状态-需要确认收款账号是否正常),8:支付/退款确认成功-不可再进行其他操作,9:验签失败,10:同步确认/买家已付款-等待卖家发货WAIT_SELLER_SEND_GOODS,11:同步确认/卖家已发货等待买家确认WAIT_BUYER_CONFIRM_GOODS' AFTER DESCRIPTION;

2,SQL编写

2.1,尽量使用单表查询,避免多表JOIN。JOIN的后续ON条件不能用OR判断,比如SELECT A.C1,B.C2 FROM A,B ON(A.ID=B.PID OR B.TAG=A.TAR_GET); OR性能非常低,PS:我们线上一些打开缓慢的功能模块都是因为这个OR的写法导致的。

2.2,写到应用程序的SQL语句,禁止一切DDL操作,例如:create,drop,alter,grant,remove;如有特殊需要,请与dba协商同意方可使用。

2.3,写SQL的时候一定要给每个字段指定表名做前缀。比如select ub.id,ub.name from user_business ub where ub.create_date > '';在iBatis的SQLMap文件中绑定变量使用"#var_name"表示,替代变量使用"$var_name$";所有需要动态order by条件的查询,在使用替代变量过程中,需要将可能传入的内容以枚举写死在代码中,禁止接受外部传入内容。

2.4,如果需要事务的支持,在使用了innodb的情况下,在数据库连接时候,先关闭自动提交,如: set auto_commit=0; 在写java代码的时候,在有事务处理的情况下,执行insert、delete、update后,commit;在exception代码块,必须写上rollback操作。

2.5,不要写select *类似的代码,需要制定的字段名。

2.6,mysql的日期和字符是相同的,所以不需要像oracle那样做另外的转换,比如:

select e.username from employee e where e.birthday>='1998-12-31 11:30:45'。

2.7,避免在where字句中对字段施加函数,如果是业务要求的除外,但需要在编写时候咨询DBA。比如DATE_FORMAT(p.PAYMENT_DATE, '%Y-%m-%d') >= DATE_FORMAT('2014-10-01', '%Y-%m-%d'),就需要改正掉。

2.8,避免多余的排序,使用group by的时候,默认会进行排序,当你不需要排序的时候,可以使用order by null;

2.9,当表连接时候,用于连接的两个表的字段如果数据类型不一致,则必须在一边加上类型转换的函数。杜绝mysql做隐式类型转换的情况。

2.10,禁止在应用程序里面执行对数据库的批量更新sql操作,如果需要请发email由dba判断在合适的时间段里面在IDC的库上手动人工执行。

3,基本原则

PS:表结构变更须由库表所属团队发起。

1,所有在测试环境执行的表结构变更的SQL必须经过DBA review。

2,不允许物理删除,不得使用存储过程、触发器以及视图,特殊情况和业务场景申请DBA

PS:所有的规范都是适应自己的业务场景的,欢迎大家提出更好的建议,自己也会根据业务的发展,不断总结扩展最契合的数据库规范。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

1044

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

334

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

213

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

35

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

111

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

77

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

17

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

813

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

97

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.5万人学习

Django 教程
Django 教程

共28课时 | 4.5万人学习

Excel 教程
Excel 教程

共162课时 | 18.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号