Mysql 数据库 开发规范

 

(一)建表规约

强制规约

1. 表达是否概念的字段

        使用  is_xxx(is_used)   的方式命名

 2. 若字段的数据类型为非负数

        类型则为 unsigned

 3. 若字段的数据类型为 unsigned tinyint

        1表示是,0 表示否

 

 4 . 表名、字段名需 使用小写字母 或 数字

        正例:getter_admin , task_config , level3_name

        反例:GetterAdmin , taskConfig , level_3_name

 5. 表名不能使用负数

        正例: user

        反例: users

 6. 字段不能使用 mysql 保留字

        例如:ADD、ALL、ALTER、ANALYZE、AND、AS、ASC、

BEFORE、BETWEEN等

 

 7.  唯一索引

        使用 uk_字段名

 8.  普通索引

        使用 idx_字段名

 9. 小数类型

        正例: decimal          

        反例: float、double      存储时存在精度损失问题

        若存储的数据范围超过 decimal 的 范围, 建议将将数据拆成整数和小数分开存储

 

 10. 存储的  字符串长度  几乎相等

        使用   定长char类型

 

 11. varchar  字符串长度   >  5000

        改使用  text类型   避免影响  其他字段的索引效率

建议规约

1. 推荐 表的命名   “业务名称_表的作用” 

        正例: tiger_task/tiger_reader/mpp_config

2. 数据库名 应与  应用名称 一致

3. 如果修改字段, 需要加上注释

4. 单表行数超过500万行或者单表容量超过2GB,才推荐进行分库分表。
        说明:如果预计三年后的数据量根本达不到这个级别,请不要在创建表时就分库分表。

5. 合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检
索速度。
        正例:人的年龄用unsigned tinyint(表示范围0-255,人的寿命不会超过255岁);

        海龟就必须是smallint,

        太阳的年龄,就必须是int;

        如果是所有恒星的年龄都加起来,那么就必须使用bigint。

(二)索引规约

之后更新

(三)SQL规约

之后更新

【注】参考阿里巴巴开发手册 第三节

资料获取:

链接:https://pan.baidu.com/s/11FmO-NoYs7jyfSw8lxcn1w
提取码:ylnb
--来自百度网盘超级会员V3的分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值