数据库设计体会

我以后在数据库设计期间:应该牢记的:

第一:所有的Float类型的字段,必须设计成NUMBER(10,2),觉得设计为VARCHAR(20)也很好。

第二:所有的时间类型的字段,设计成VARCAHR(20)

第三:所有表的主键要求自增,或者是用GUID,自增主键建议使用:表名_ID的形式。自增做主键的问题是:在oracle导入导出会遇到问题,以及多台oracle做数据同步的时候(解决方案就是一个表用1自增,另外的用10亿自增),guid的好处就是唯一性,能够保证数据库里的每一条记录都是唯一的一个GUID.

第四:考虑到表与表之间的关联。对于子表的外键,应该预留一个字段存放主表的名称

例如

 单位表 是主表                     采购单 是子表

DEPT_ID,DEPT_name            PUR_ID ,DEPT_ID,DEPT_name

虽然是浪费了磁盘的存储空间,但是同样提高了查询的效率,尤其是在多表联合查询,以及具有递归的表进行联合查询!

第五:尽可能的去使用绑定变量,以及视图和存储过程。

第六:尽可能的不去使用复合主键。

第七:尽量不要去将实体的属性设为主键。当然实体的有些属性可以存在不存在,存在就唯一,就好像身份证号码。

对于主键的选择,尽量不去选择经常修改的键值。

第八:对于表的列数设计最好不要超过30列,列越多越不利于管理和维护。

第九:表的命名:采用:项目名称_模块名称_表名称。

暂无:以后在工作中遇到的问题会继续补上,希望网友帮忙补上

    

原文地址:https://www.cnblogs.com/umlzhang/p/1821528.html