日期:2014-05-16  浏览次数:20537 次

规范 db
功能发布当天,各组TL提供验证过的脚本(包含回滚脚本),sql脚本和回滚脚本分开放在两个txt或者sql文件中。以附件形式发送到我的邮箱(zkf18474)。需要在11点之前提供。

我们准备操作的模式是:每天刷一遍全量脚本。
这就要求每天的数据库环境都可以回滚到基线版本,对回滚脚本的要求提高。请各组TL着重检查。

一、 建表遵循基本三范式。
1, 除非基于特殊情况考虑,通常情况下每个表都要有主键
create table book
(
bookid  number(19) primary key,
column …….
……..
)
也可以在表建好之后添加主键约束:
alter table mybook add (constraint PK_mybook_bookid) primary key(bookid);
2, 第二范式和第三范式酌情尽量满足
二、 所有字段必须加注释 (可以借助PL/SQL Developer工具)
1, 表名的注释
给表加ORACLE 的注释:
comment on table table_name  is  '表的注释';
给列加ORACLE 的注释 :
comment on column table_name.colunm_name is '字段注释';
例子: bookType
图书类型:1- 图书 2- 漫画 3- 杂志
2, 查看表的注释:
select table_name,comments from user_tab_comments where table_name='表名';
3, 查看列的注释:
select  table_name,column_name ,comments from user_col_comments where table_name='表名';
--此处查询表名需要大写 eg: CON_AUDITBOOKINFO
三、 非空和默认值
1, 建表的时候,对一些关键业务字段都要加上非空约束。
Create table book
(
bookid  number(19) primary key,
status   number(2) default '0' not null,
)
2, 不建议表中存储过多的null值,可以考虑使用缺省值
四、 字段的属性和大小
1, 不允许用字符类型存放时间、日期和数字类型
2, 不允许使用int类型,应该明确指定大小。Int型在数据库中表示为number(38),造成存储空间浪费。
3, 大字段尽量往后靠
五、 回滚脚本(重要!!!)
1, 对数据库的每一次改动,都要提供恢复的方案。通常情况下是回滚脚本。
Create table table_name            ------ drop table table_name(表关联drop顺序)
Create view view_name            ------- drop view view_name
Create index index_name           ------ drop index index_name
Create sequence sequence_name     --- drop sequence sequence_name

2, 增加字段
alter table mybook add ccc varchar2(10);
对应回滚 :
alter table mybook drop column ccc;