MySQL数据库表设计规范
发表时间:2019-07-05 18:38文章来源:技昂编程网
一、数据库设计
1、通常都应用INNODB储存模块,否则读写能力比例<1%,才考虑到应用MYISAM储存模块;其他储存模块请在DBA的提议下应用。
2.对于MYSQL来说,存储过程(包括存储过程、函数、触发器)不是很成熟,也没有完美的错误记录处理。不推荐使用。
3、UUID(),USER()那样的MySQLINSIDE涵数针对拷贝而言是很风险的,会造成主备统计数据不相同,因此请不必应用。要是必须要应用UUID做为主键,让手机应用程序来造成。
4、请不必应用外键约束,要是统计数据存有外键关联,请在程序流程方面建立。
5、必须采用UTF8编码。
二、数据库对象设计规范
1、表设计
a)在设计方案时尽可能包括2个时间字段名:crt_time(建立时间),upd_time(改动时间)且非空,对表的纪录开展升级的那时候,必需包括对upd_time字段名的升级。
b)必需要有主键,主键尽可能用自增字段名种类,强烈推荐种类为INT或是BIGINT种类。
c)需要多表连接的字段,数据类型保持绝对一致。
d)Mysql的表尽可能设成Kv(Key-Value)构造,那样有利于拓展和维护保养。
e)当表的字段名数十分多时,能够将表分为二张表,一張做为标准查询表,一張做为详尽內容表(关键是以便特性考虑到)。
f)当字段名的种类为枚举型或布尔型时,提议应用char(1)种类。
g)同一表中所有varchar字段的总长度不能大于65535。如果有这样的要求,请使用TEXT/LONTEXT类型。
h)由于MySQL表DDL的维护成本高,在适当的情况下可以具有一定的现场馀量。比如:Value1,Value2,Value3这样的字段。
命名
a)同一模块的表尽可能使用相同的前缀,表名尽可能表示意义。例如CRM_sal_fund_item。
b)字段名取名应尽量应用表述实际上含意的英语单词或简称,如,企业Id,不必应用:corporation_Id,而用:corp_Id只能。
c)布尔值类型的字段命名为is+描述。如member表上表示是否为enabled的会员的字段命名为IsEnabled。
2、索引命名
a)_ind,各部分以下划线()分割。
b)多英语单词构成的columnname,取前好多个英语单词首字母,加末英语单词构成column_name。如:sample表member_Id上的数据库索引:sample_ABP_ind。
3.约束设计
a)主键最好无实际意义的,由Sequence造成的Id字段名,种类为number,不提议应用组成主键。
b)为了达到唯一性限制的效果,不要创建唯一索引,必须显式地创建一个公共索引和约束(主键或英国),即首先创建一个以约束名称命名的公共索引,然后创建一个约束,并使用索引…...指定索引。
c)当删掉约束力的那时候,为了保证不危害到index,最好是再加keepindex主要参数。
d)主键的内容不能被修改。
e)外键约束通常没有数据库查询上建立,只表述1个逻辑性的定义,由系统控制。
f)当迫不得已必需应用外健得话,必需出外健列建立INDEX。
命名
a)主键约束:pk结尾,_pk;
b)unique约束:_uk结尾,uk;
c)check约束:_ck结尾,ck;
d)外键约束:_fk结尾,以pri连接本表与主表,_pri_fk;
- 上一篇:Adobe发布Photoshop源代码第一版
- 下一篇:什么?pp下载站终于上线了!
- 学编程应该用什么软件 05-12
- 如何学编程入门基础 05-21
- python能做什么 06-09
- 程序员需要学好什么科目 06-10
- 初学编程应该先学什么语言 07-04
- cnc编程需要什么基础设备 07-11