如何设计表

1.参照领域中的概念,理清领域中概念之间的关系,将其映射成表.

 

2.尽量遵循数据库设计范式:

(a)第一范式: 有主键,具有原子性,列不可分.

(b)第二范式:完全依赖,没有部分依赖.

(c)第三范式:没有传递依赖

 

3.主键设计最好采用单一主键,最好不要采用复合主键,尽量使用没有语意的字段作为主键(如:oracle的sequence来维护一个主键),主键一般采用数值型,会提高检索效率.

 

4.关天冗余字段的问题,应该根据需求的具体情况是否加入.

 

5.最好加入外键约束(在开发阶段最好不要设置外键约束, 运行阶段加入外键约束)

 

6.如果做通用性产品,最好不要使用数据库特性的功能,除非特殊情况.

 

7.如果数据量非常大,并且频繁的根据相关字段查询,最好建立索引.

 

8.如果其中某些表有相似的表字段属性, 可以将其提取出来,建立一个类似于数据字典的表, 这个表的一些字段供其它表作为外键,

这样做的话会减少很多表,维护性会比较好

example:

表t_items

(id number(10),

name varchar2(20),  

category, varchar2(20),   #类别一

unit)  varchar2(20),   #单位

 

表t_client

(id number(10),

client_name varchar2(20),  

client_level varchar2(20))  #级别

 

可以建立一个数据字典的表

t_data

(id number(10),

name varchar2(20),  

category char(1))       A:类别一  B:单位  C:级别   

 

9.建立第二张表,来维护主键,而不采用sequence来管理主键,这样的话移植性会比较好.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值