数据库设计规范

1.命名

    数据库命名以环境结尾(_dev);

    表命名:模块字头_表名,比如平台模块用户表:p_user,

    字段命名:表内字段采用下划线方式,下划线方式支持数据库对大小写不敏感数据库;命名避免java中的关键字和数据库中关键字;

    数据库名,表名,字段名全部用英文小写;

    索引命名以(IDX_)开头;全部大写;

    外键以(FK_)开头,全部大写;

 

2.字段类型建议:

    表时间用timestamp,如果是生日类日期用:datetime;

    主键尽量用char(32),会比varchar节省很多性能,varchar是可变长度,每次需要计算长度再存储;

    是否标识统一用(_flag),比如是否手机已注册:mobile_flag(Integer),所有1代表是,0代表否 

    状态标识统一用(_status),比如用户状态:user_status(Integer),1,2,4,6

    金钱统一用service_price(decimal(20,2)),保留两位小数,以元为价格单元

    每个表基础字段:del_flag(Integer)、create_time(timestamp)、update_time(timestamp),create_by(char(32)),update_by(char(32))

3.注意事项

    数据库编码不要用utf-8,要用utf8mb4,不然有些特殊编码会存储不进去;

    可能用于查询条件的字段,在设计中尽量避免NULL,NULL也同样会占用存储;

    能用联合主键做主键的,尽量用联合主键作为主键;

    列类型尽量定义成数值类型,且长度尽可能短,如主键和外键,类型字段等等

    当一个表字段有两个或以上text时,尽量考虑建立辅表,辅表以主表主键共用;

    SELECT子句,禁止使用*

    count(1) 和count(*) 效率上没有本质上的区别,但我们仍推荐用count(1)

    如果应用逻辑允许,建议用用EXISTS替代IN

4.索引建立

    根据需要建立多列联合索引

    多表连接的字段上需要建立索引

    where条件字段上需要建立索引

    排序字段上需要建立索引

    分组字段上需要建立索引

    Where条件上不要使用运算函数,以免索引失效

 

 

 


 

 

 

 

转载于:https://my.oschina.net/u/2322635/blog/1863071

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值