失效链接处理 |
数据库编写规范 PDF 下载
本站整理下载:
相关截图:
主要内容:
1.约定
避免使用Oracle的保留字如LEVEL、关键字如TYPE(见Oracle保留字和关键字); 各表之间相关列名尽量同名;
除数据库名称长度为1-8个字符,其余为1-30个字符,Database link名称也不要超过30个字符;
命名只能使用英文字母、数字和下划线,且以字母开头。
2.表名
命名规则为xxxx_yyy_TableName。xxxx表示类别的名称代码;yyyy表示子系统的名称代码,由4-6个字母构成;TableName为表含义。
xxxx类别主要包括:
ZD:字典;TJ:统计表;DATA:数据表;LOG:日志表;TEMP:临时表;以及其他自定义类型。
3.视图
视图的命名采用xxxx_ViewName_v。xxxx表示系统的名称,由四个字母构成;_v后缀表示视图,ViewName部分表示视图的含义。
4.索引
命名规则:表名_(列名或列名单词首字母)_idx。
5.序列
命名规则:表名_(列名或列名单词首字母)_seq;
6.主键
命名规则:表名_pk;
7.外键
命名规则:表名_列名_fk;
8.实体表
实体表都必须包含四个字段:主键(PK;与业务无关)、创建人(Created_By)、创建时间(Created_Time)、修改人(Modified_By)、修改时间(Modified_Time)、删除标志(Delete_Status)。所有数据不做真正删除,只做逻辑删除。
9.字段规范
ID结尾的字段为仅由数字组成,Code结尾的字段为仅由字母或数字组成;
VARCHAR(2)最多2000字符,超过2000字符使用CLOB或BLOB;
DATE精确到秒,而非天;
使用NUMBER数据类型时请给定长度,例如:NUMBER(5,2) 表示整体(整数+小数)位数最大5位,小数部分为2位。
10.索引
建表时应尽量考虑将必要的索引一并建立。原则上where和order子句中经常使用的非空字段都应创建索引。
Where条件中,尽量减少对列名使用函数。
尽量不在包含空值的列建索引(包含空值,不走索引)。
非特殊情况,使用LIKE 模糊查询时尽量避免使用前置通配符。
Where和order子句中,尽量将索引字段放在前面。
在表查询中,WHERE子句中,字段和值的类型要保持有一致,避免Oracle自动进行类型转换,导致索引失效。
示例,TAB表中有字段COL,类型为NUMBER。
错误:SELECT ID FROM TAB WHERE COL=’1’;
正确:SELECT ID FROM TAB WHERE COL=1;
11.查询
在表查询中,一律不要使用* 作为查询的字段列表,需要哪些字段必须显式写明;
在表查询中,必须有Where子句,除非此表为非增长表;
在表查询中,一次最多返回的记录条数不要超过1000条或记录内容不要大于1MB的数据,超过需做分页;
在表查询中,作where筛选和Order By排序时,优先使用主键列,索引列(主键列和索引列写在前面);
避免在WHERE字句中对列施以函数:
错误:
SELECT service_id,service_name FROM service_promotion WHERE TO_CHAR(gmt_modified,’yyyy-mm-dd’) = ‘2001-09-01’;
正确:
SELECT service_id,service_name FROM service_promotion WHERE gmt_modified = TO_DATE(‘2001-09-01’,’yyyy-mm-dd’) AND gmt_modified < TO_DATE(‘2001-09-02’,’yyyy-mm-dd’);
避免使用数据库的类型自动转换功能:
错误:
SELECT category_id,category_name FROM category WHERE category_id = ‘123’; – id’s type is number
正确:
SELECT category_id, category_name FROM category WHERE category_id = 123; – id’s type is number
12.删除
删除记录时,必须有Where唯一条件;
当有主从表时,要先删除从表记录,在删除主表记录.
13.修改
修改记录时,必须有Where唯一条件
|