散点分,大家来讨论一个优化问题,欢迎参与
对于数据库关系(主外键)的设计,不外乎几种
第一种是层层关联,相关的数据只存储一份,这样在增加修改时数据量少,但在查询时必然得通过视图或程序取出相同数据,此种方式,强调数据间的连系紧密性,优点很明白,就是能减少存储量,减少数据的不一致性,不会出现同一个编号的东西,在某一环节叫A,另一环节叫B的情况,但可能出现要取一个完整的数据信息时,需要多层反推,或者是视图内嵌视图的情况,
第二种是遍地开发,把数据复制到多个表中,程序可能变更复杂些,但每个表里的每条记录都是完整或基本完整的,这样在列示或查看时,可以显著地减少工作量,但由此带来的为了保证数据同步而增加了系统开销,如修改基本数据时,相关联的表,可能名称也要同时UPDATE
第三中,两种结合形,优势互补,也不失为中庸之道
个人认为:这两种方法都无可厚非,关系看应用的不同,如果WEB上,现在一些论坛,select操作的量可能要占到80%或更多,这时,似乎应该选用第2种更实际些,
但一些商用MIS系统,却经常让数据库设计显得很为难,不知如何取舍,
在这里,小弟抛臭砖一块,期待能引出大家之美玉,谈谈想法,比如各在系统设计时如何考虑,实施后碰到的问题,以及根据哪些应用进行取舍?