专注于高品质PHP技术等信息服务于一体 [STIEMAP] [RSS]

百度提供的广告:
java
当前位置:首页 > 技术文档 > java >  > 
数据库业务关系设计简要

数据库业务关系设计简要



一、主外键关系


1,复制法


 如:一个商城项目:商品表和订单表之间的关系。应该是,产生订单后,把商品表复制一份出来,需要的字段有,商品名称、价格、购买时间等。为什么要这样设计,因为,当这件商品被其它人买走之后,可能会修改价格,所以必须是复制一份出来。不可以用表连接查询。


2,假删除法


 如:OA系统,公司部门,与员工之间的关系。员工必须属于某个部门,当部门修改名称时,要保证员工能看到修改过的名称,当删除的时候,由于存在,外键约束,所以不能删除。只可以做一个字段,设置为不显示。可是这样会带来的问题是,数据库越来越大,数据的冗余。


3,真正最好的做法


 真删除,在数据库多加一条记录为,临时类别。当删除时,直接把所有的关连的复制到,临时表的ID,不会影响到其它的业务。


  在对数据要求比较高的项目中,如,航天,证券等,最好的做法,都是假删除,即所有的


删除,都是设为不显示。



二、移值性


1,少用不用存储过程


 存储过程,由于是编译好的sql性能比一般的sql查询稍快,但由于不同的数据库对存储过程的编写不同,在 sql server 中是 t-sql 在 orcale 中是 pl-sql 两者对变量的初始化,判断,循环都不一样,所以移值性很差。都必须重写。


2,外键关连


 这一点在导入,导出数据时,表现的较为明显。即在导入数据库找不到外键的问题,导致数据导入失败。只可以备份整个DB。在关系型数据库中,最好不要使用数据库的关连约束,最好都用程序来完成。


3,程序sql上的通用


 如:insert into user (uname,upwd,logtime) values('user','123456',12345445);


有的数据库直接使用  insert into user value('user','123456',12345445); 如:sql server 但这个sql在mysql 下就会报错。


4,当修改数据库字段时影响减少到最小


 当添加了字段时,要保证原来的sql可以正常执行。例如上即可,这里不在过多叙述。