PostgreSQL 数据库开发规范——命名规范 设计规范

原文:PostgreSQL 数据库开发规范

命名规范

强制】库名、表名限制命名长度,建议表名及字段名字符总长度小于等于63。

【强制】对象名(表名、列名、函数名、视图名、序列名、等对象名称)规范,对象名务必只使用小写字母,下划线,数字。不要以pg开头,不要以数字开头,不要使用保留字。
保留字参考
https://www.postgresql.org/docs/9.5/static/sql-keywords-appendix.html

【强制】query中的别名不要使用 "小写字母,下划线,数字" 以外的字符,例如中文。

【推荐】主键索引应以 pk_ 开头, 唯一索引要以 uk_ 开头,普通索引要以 idx_ 打头。

【推荐】临时表以 tmp_ 开头,子表以规则结尾,例如按年分区的主表如果为tbl, 则子表为tbl_2016,tbl_2017,。。。

【推荐】库名最好与应用名称一致,或便于辨识。

【推荐】不建议使用public schema(不同业务共享的对象可以使用public schema),应该为每个应用分配对应的schema,schema_name最好与user name一致。

【推荐】comment不要使用中文,因为编码可能不一样,如果存进去和读取时的编码不一致,导致可读性不强。 pg_dump时也必须与comment时的编码一致,否则可能乱码。

 

设计规范

【强制】多表中的相同列,必须保证列名一致,数据类型一致。

【强制】btree索引字段不建议超过2000字节,如果有超过2000字节的字段需要建索引,建议使用函数索引(例如哈希值索引),或者使用分词索引。

【强制】使用外键时,如果你使用的PG版本没有自动建立fk的索引,则必须要对foreign key手工建立索引,否则可能影响references列的更新或删除性能。

 

postgres=# create table tbl(id int primary key,info text); CREATE TABLE postgres=# create table tbl1(id int references tbl(id), info text); CREATE TABLE postgres=# \d tbl Table "public.tbl" Column | Type | Modifiers --------+---------+----------- id | integer | not null info | text | Indexes: "tbl_pkey" PRIMARY KEY, btree (id) Referenced by: TABLE "tbl1" CONSTRAINT "tbl1_id_fkey" FOREIGN KEY (id) REFERENCES tbl(id) postgres=# \d tbl1 Table "public.tbl1" Column | Type | Modifiers --------+---------+----------- id | integer | info | text | Foreign-key constraints: "tbl1_id_fkey" FOREIGN KEY (id) REFERENCES tbl(id) postgres=# \di List of relations Schema | Name | Type | Owner | Table --------+----------+-------+----------+------- public | tbl_pkey | index | postgres | tbl (1 row) postgres=# create index idx_tbl1_id on tbl1(id); CREATE INDEX

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzyjs.html