博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库设计规范
阅读量:6456 次
发布时间:2019-06-23

本文共 961 字,大约阅读时间需要 3 分钟。

hot3.png

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

你可能感兴趣的文章
MFC路之2.常用控件的见解
查看>>
kafka0.8.2.1常用命令
查看>>
Java知识点04-位和字节
查看>>
第1章 SQL Server 2008从入门到精通(中文版)读书笔记
查看>>
手机打开USB调试(小米)
查看>>
mongo 使用笔记
查看>>
Python生成器
查看>>
PHP SESSION 应用 邮件系统实例 高洛峰 细说PHP
查看>>
CnetOS 6.8 编译安装LAMP以及fcgi虚拟主机
查看>>
Linux运维学习-3——2016年7月24日
查看>>
微信公众帐号中使用的QQ表情代码对照表
查看>>
React的组件协同使用
查看>>
Kubernetes监控方案之Grafana + Alertmanager + Prometheus
查看>>
archlinux 屏幕亮度调整 (dell studio系列的15z-1569笔记本)
查看>>
如何解决虚拟主机被暂停问题??
查看>>
我们为什么应该坚持写博客
查看>>
SpringCloud Feign session传递 forward Header
查看>>
项目进行得死去活来,开会开会开会,很反感
查看>>
为什么只要2k月薪也不录用这些应聘者?
查看>>
用什么心态对待水平糟糕的程序员[不靠谱的程序员、思路紊乱的程序员]?
查看>>