关于数据库表设计时需考虑的查询效率问题(50分)

Y

yourid

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库采用delphi7+sql2000

有3个表不知道该如何设计:
table1(a1,a2,a3,..,an)---a1为主键
table2(ID,a1)---ID为主键
table3(ID,x,y)
其中,table2和table3为1:1002,table1和table2为1:3,表1会有3000左右的数据量,
表2就是9000的数据量,表3就是9000*1002
1.如果这么设了三个表,在查询中经常需查询table3中的数值。编程起来觉得有些复杂,
可如果把table1和table2合并,就会出现冗余。
2.如果还是采用三个表的结构,把表1和表2用视图还是用存储过程把两个表联合起来?哪
个效率高?
 
把table1和table2合并把,为了提高效率,适当地冗余是好的
 
你Table中有多少字段,除a1外的其它字段一条记录占多少字节,
你的数据还是查询的用的多,还是修改用的多
这些都是衡量的标准,
 
to qianwt
查询用的多些,talbe1中会有8个字段,table2会有6个字段,如果合并这两个表,13个字
段就有12个字段是冗余的。
谢谢你的建议,我没有从数据库的基础开始学的,一开始就是编程,所以这些很基础的
东西不懂。
 
把table1和table2合并比较好的,这样和table3的关联会提高效率。
你的table3实在很大的。
 
某些时候不必完全遵循第三范式,况且我们设计的基本都时这样的
 
就目前这种情况,我建议在table1和table2之间视图,这样效率可能会好一点,
因为合并冗余数据太多,用视图也可以提高关联时的速度,也能解决冗余数据,
缺点就是会降低增加或修改时候的效率,还有对able2中的a1建立索引,也回提高效率
 
多人接受答案了。
 
顶部