当前位置:网站首页>MySQL 数据库命名规范.PDF
MySQL 数据库命名规范.PDF
2022-06-29 15:01:00 【码农编程进阶笔记】
一、数据库涉及字符规范
采用26 个英文字母(区分大小写)和0-9 这十个自然数,加上下划线'_'组成,共37个字符.不能出现其他字符(注释除外). 注意事项: 1) 以上命名都不得超过30 个字符的系统限制.变量名的长度限制为29(不 包括标识字符@).
2) 数据对象、变量的命名都采用英文字符,禁止使用中文命名.绝对不要在对 象名的字符之间留空格. 3) 小心保留词,要保证你的字段名没有和保留词、数据库系统或者常用访问 方法冲突, 当表名或字段名乃至数据库名和保留字冲突时,在sql语句里可以用 撇号(`)括起来。
4) 保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一 定要保证一致性.假如数据类型在一个表里是整数,那在另一个表里也要保证是 整型.
二、数据库命名规范
数据库名使用小写英文以及下划线组成(weixin+_jd_com).比如: weixin_jd_com im_jd_com 备份数据库名使用正式库名加上备份时间组成,如: dbname_20150206
三、数据库表命名规范
数据表名使用小写英文以及下划线组成(项目名+表信息)比如: oa_user oa_workflow_steps备份数据表名使用正式表名加上备份时间组成,如: oa_user_20150206
oa_workflow_step_20150206四、字段命名规范
字段名称使用单词组合完成,首字母小写,单词之间用“_”分隔,最好是带表名前缀.
如oa_user 表的字段: user_id user_name表与表之间的相关联字段要用统一名称
五、索引命名规范
索引名称为idx_列名_表名缩写,唯一索引名称为uniq_列名_表名缩写,其中表名 和关联字段名如果过长,可以取表名、关联字段名的前5 个字母,如果表名、关 联字段为多个单词组合,可以取前一个单词,外加后续其它单词的首字母作为字 段名
如普通索引:idx_user_name_oa唯一索引uqidx_ user_name_oa
六、字段类型规范
规则:用尽量少的存储空间来存数一个字段的数据.比如能用int 的就不用char 或者varchar能用varchar(20)的就不用varchar(255)时间戳字段尽量用int 型
七、操作规范
如无备注,则表中的第一个id字段一定是主键且为自动增长; 如无备注,则数值类型的字段请使用UNSIGNED属性; 如无备注,所有字段都设置NOT NULL,并设置默认值; 所有的数字类型字段,都必须设置一个默认值,并设为0; 针对varchar类型字段的程序处理,请验证用户输入,不要超出其预设的长度; 建表时将数据字典中的字段中文名和属性备注写入数据表的备注中(“PK、自动 增长”不用写);
如无说明,建表时一律采用innodb引擎;.尽量采用批量SQL语句,减少与数据库交互次数 提交线上建表改表需求,必须详细注明涉及到的所有SQL语句(包括INSERT、DELETE、UPDATE),便于DBA进行审核和优化。
八、其他设计技巧
1) 避免使用存储过程、触发器、视图、自定义函数等,这些高级特性有性能问题,以及未知BUG较多。业务逻辑放到数据库会造成数据库的DDL、SCALE OUT、SHARDING等变得更加困难。 2) 分区表对分区键有严格要求;分区表在表变大后,执行DDL、SHARDING、单表恢 复等都变得更加困难。因此禁止使用分区表,并建议业务端手动SHARDING。
3) 使用常用英语(或者其他任何语言)而不要使用拼音首字母缩写 4) 将大字段、访问频率低的字段拆分到单独的表中存储,分离冷热数据, 有利于 有效利用缓存,防止读入无用的冷数据,较少磁盘 IO,同时保证热数据常驻内存 提高缓存 5)禁止有 super 权限的应用程序账号存在, 安全第一。super 权限会导致 read only 失效,导致较多诡异问题而且很难追踪。6)不要在MySQL数据库中存放业务逻辑, 数据库是有状态的服务,变更复杂而且 速度慢,如果把业务逻辑放到数据库中,将会限制业务的快速发展。建议把业务逻 辑提前,放到前端或中间逻辑层,而把数据库作为存储层,实现逻辑与存储的分离。
附:建表示例
CREATE TABLE `weixin_test` (
`id` int(20) unsigned NOT NULL AUTO_INCREMENT,
`staff_id` int(11) NOT NULL COMMENT '操作人员 id',
`staff_name` varchar(50) NOT NULL COMMENT '人员名称',
`url` varchar(200) NOT NULL COMMENT '操作路径',
`method` varchar(10) NOT NULL COMMENT '操作方式',
`params` varchar(10) NOT NULL COMMENT '操作参数',
`ip` varchar(20) NOT NULL COMMENT 'ip',
`time` int(11) NOT NULL COMMENT '操作时间',
PRIMARY KEY (`id`),
KEY `idx_staff_id_ct` (`staff_id `)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;边栏推荐
- Lumiprobe deoxyribonucleic acid phosphate CpG 1000 solid carrier
- Konva series Tutorial 4: drawing attributes
- curl: (56) Recv failure: Connection reset by peer
- 这是少了什么依赖嘛?FlinkSql打包运行的时候报错,但是本地idea跑的时候是没问题的,求解,谢
- Chapter IX app project test (4) test tools
- 明德扬XILINX-K7-325T/410T核心板数据手册
- LeetCode笔记:Weekly Contest 299
- Unity C basic review 28 - delegation with return (p449)
- Unity C# 基础复习26——初识委托(P447)
- kubernetes Unable to connect to the server: x509: certificate has expired or is not yet valid
猜你喜欢

MCS: discrete random variable - Hyper geometric distribution

打造一个 API 快速开发平台,牛逼!

卫星运动的微分方程

Illustration of Ctrip quarterly report: net revenue of RMB 4.1 billion has been "halved" compared with that before the outbreak

使用自定义注解实现Redis分布式锁

Const usage

curl: (56) Recv failure: Connection reset by peer

Differential equations of satellite motion

MCS: discrete random variable - binomial distribution

ROS notes (10) - Launch file startup
随机推荐
Create an API rapid development platform, awesome!
Informatics Olympiad all in one 1002: output the second integer
Lumiprobe deoxyribonucleic acid phosphate CpG 1000 solid carrier
Chapter IX app project test (the end of this chapter)
Is it reliable to invest in REITs funds? Is REITs funds safe
Lumiprobe click chemistry - non fluorescent azide: azide-peg3-oh
Secondary pointer
mysql 备份与还原
Weigao blood purification sprint to Hong Kong: annual revenue of RMB 2.9 billion, net profit decreased by 12.7%
微信公众号—菜单
message from server: “Host ‘xxxxxx‘ is blocked because of many connection errors; unblock with ‘m
MCS: discrete random variables - geometric distribution
Lumiprobe 活性染料丨环炔染料:AF488 DBCO,5 异构体
Informatics Olympiad all in one 2062: movie tickets
雷达发射机
极化SAR几种成像模式
从雷达回波中可获取的信息
Illustration of Ctrip quarterly report: net revenue of RMB 4.1 billion has been "halved" compared with that before the outbreak
他山之石 | 丁香园 医疗领域图谱的构建与应用
const用法精讲