Oracle数据库设计规范建议(5)
发布时间:2021-06-08
发布时间:2021-06-08
oracle 数据库 设计规范:包括字段命名规范,表命名规范
关联查询时,需要建索引(可能有些数据库自动为外键建索引,则例外);
4.2.7 当有联合主键或者联合索引时,注意不要建重复的索引。举例说明: 联合索引的用法:
4.2.7.1 表EMPLOYEES,它的主键是建立在列DEPARTID和EMPLOYEEID上的联合主键,并且创建主键的语句中DEPARTID在前,EMPLOYEEID在后。在这样一个表里,通常就没有必要再为DEPARTID建一个索引了;联合索引的情况也一样;
4.2.7.2 更复杂的情况,比如表EMPLOYEES,有一个索引建立在列CORPID, DEPARTID, EMPLOYEEID三列上,在创建语句中也依据上述顺序,就没有必要再为CORPID建立索引;也没有必要再建立以CORPID在前,DEPARTID在后的联合索引;如果EMPLOYEEID需要索引,那么为EMPLOYEEID建立一个索引是不与上面的索引重复的;DEPARTID列也类似;
4.2.8 控制一个表的索引数量,尽量使得一个表的索引数量小于五个;
4.3 视图的设计
4.3.1 在不太清楚视图用法的情况下,尽量不建。因为一旦建了,就有被滥用的危险;
4.3.2 如果需要建视图,只要是打算长期使用的,请写入数据库设计中。明确它的用途、目的;
4.3.3 建立视图时要明确写出所有要选择出的列名而不要以SELECT *来代替,可以使结构清晰可读性增强,也不会增加它对表的所有字段的依赖,而表是很可能修改的,特别是增加字段。就很有可能导致使用该视图的应用程序出错;
4.4 存储过程、函数、触发器的设计
问:gtproject中有用到过触发器吗?
4.4.1 触发器的功能通常可以用其他方式实现。在调试程序时触发器可能成为干扰。假如你确实需要采用触发器,一定要经过测试再应用在生产系统中,而且必须集中对它文档化。
4.4.2 请把程序包、存储过程、函数、触发器,与应用程序一同加入CVS(现在大多数软件开发公司都使用SVN替代了CVS)中,进行版本控制。因为此四者包含了代码,应用程序对他们的依赖程度比对表、视图的依赖程度更高;
4.4.3 适量但尽量少使用存储过程、函数、触发器。使用存储过程、函数、触发器