数据库的设计规范

数据库的设计规范

Posted by liz on March 6, 2020

前言

作为后端程序员,对于数据库的操作使用是不可避免的,当我们在创建数据表,有哪些点需要我们注意呢?下面根据日常工作中 的开发,总结了我司经常使用到的几点要求,可能不是很好,但可作为参考:

数据库的命名

采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线 _ 组成,命名简洁明确,多个单词用下划 线 _ 分隔,一个项目一个数据库,多个项目慎用同一个数据库

数据库表的命名规范

1、采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线 _ 组成,命名简洁明确,多个单词用下划线 _ 分隔

2、全部小写,禁止出现大写。

比如 订单商品表的命名

错误 正确
orderGoods order_goods

3、禁止出现数据库的关键字。例如:time,desc,password等

4、表名不要太长了,一般不超过三个单词。

5、表的名称一般使用名词或者动宾短语。

6、一般用复数表示。

比如 订单商品表的命名

错误 正确
order_good order_goods

7、注意添加表的注释。

数据库字段的命名

1、采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线 _ 组成,命名简洁明确,多个单词用下划线 _ 分隔

2、全部小写,禁止出现大写。

比如:字段-开机次数

错误 正确
bootNumber boot_number

3、字段的备注要写清楚。

主要是方便后面的同学的维护。

4、禁止使用数据库关键字,如:asc,desc ,distinct select,count 等

同时我们在连表查询的时候也要注意,不要将表的别名命名为数据库的关键字。

5、字段名不要太长了,一般不超过三个单词。

比如字段:合格品数量

错误 正确
number_of_qualified_products qualified_amount

6、字段的名称一般使用名词或者动宾短语。

比如字段:描述

错误 正确
describe description

7、在命名表的列时,不要重复表的名称。

比如:我们有个企业表enterprises,那我们命名企业名字

错误 正确
enterprise_name name

因为表名enterprises已经对表的信息做了限制,这是一个记录企业信息的表,里面的信息是企业的信息。所以用name就可以了。

8、不要在列的名称中包含数据类型。 如:DATE,TEXT,FLOAT等

9、字段命名使用完整名称,禁止缩写。

10、表中的字段一般取单数。

比如字段:开机次数

错误 正确
boot_numbers boot_number

对于特殊的字段,我们还是可以考虑复数,比如字段:订单编号 字段的类型是一个字符串数组

错误 正确
order_sn order_sns

然后总结下平时命名的一些注意点

编号的命名

对于涉及编号字段的命名:比如涉及到的订单编号,系统编号,用户编号
一般是在对应的字段后面加上sn也就是编号的缩写表示。

字段 命名
订单编号 order_sn
产品编号 product_sn

时间的命名

对于时间相关的命名,比如创建时间,更新时间,完成时间。习惯的命名习惯是:相关名词的过去式,加上at表示。

字段 命名
完成时间 completed_at
创建时间 created_at
更新时间 updated_at

对于涉及到记录状态的字段

比如:对于企业,我们有一个字段企业的类型,那么我们会将这个字段定义为string,然后里面放对应状态的描述。
字段:企业类型 type

 type           text                                                   not null,
 comment on column handle.enterprises.type is '企业类型:   government,researchInstitute,socialGroup,enterprise';

可能这样定义,有点浪费存储字段的空间,但是优点就是易读。

什么是名词,什么是动宾短语?
名词

名词 (Nouns)是词性的一种,也是实词的一种,是指待人、物、事、时、地、情感、概念等实体或抽象事物的词。名词可以独立成句。在短语或句子中通常可以用代词来替代。名词可以 分为专有名词(Proper Nouns)和普通名词 (Common Nouns),专有名词是某个(些)人,地方,机构等专有的名称,如Beijing,China等。普通名词是一类人或东西或是一个抽 象概念的名词,如:book,sadness等。

动宾短语

动宾之间是支配与被支配、关涉与被关涉的关系。动词+宾语,宾语是回答动词“谁”、“什么”、“哪儿”的。如:消灭敌人、放下包袱、丢下它、发展生产、进行斗争、骗取信任、恢复平静、爱热闹、下决心、有幽默感、像珍珠等

总结

对于数据字段表结构的命名,要尽可能的精简。当然有时候不可避免有点字段的名字,比较长,那我们还是想着名字的精简命名,用名词 或者动宾短语去命名,还是就是用常用的英文单词,让我们一眼看到就能明白这个单词的含义。

参考

【数据库表字段命名规范】https://yq.aliyun.com/articles/585603
【名词】https://zh.wikipedia.org/wiki/%E5%90%8D%E8%A9%9E
【动宾短语】https://www.thn21.com/base/yu/9295.html