求数据库高手帮我解决一个纠结的问题,该视图还是表?

现在有个主要的表A,剩下的几十个表都是和A外键相关的。我需要一个展示:把A表中和id=某的记录相关的所有信息展示出来。这些所有信息是这样得到的,假如id=1,那么就把B中关联所有id=1的统计一下有几条,C中关联所有id=1的统计一下有几条。。。大约统计到八十次。展示列如下id name sumB sumC sumD 。。。
我的解决办法如下:
1 建立统计表T(80个字段),每当A中插入数据就往T中插入一条记录,除了id name都设为0.剩下的表更改的时候出发T的更改
2 建立统计表T(4个字段 分别为 id name sum type)这样每当A中插入数据时就往T中插入80条记录(用type标记是哪种统计)剩下的表更改的时候出发T的更改
3 建立视图:视图的每个字段定义为对某表的统计
请问,我改用哪种方法呢?各自的优缺点是什么?

我只用了三个表做实验,没有建立表,也没有建立视图,直接有select直接选出来了
你参考一下吧~

SELECT A.ID,
(SELECT COUNT(*) FROM TABLE_B B WHERE A.ID=B.ID),
(SELECT COUNT(*) FROM TABLE_C C WHERE A.ID=C.ID)
FROM TABLE_A A
WHERE 1=1
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-07
1.建议把视图修改成为一个实体的表。
2.用触发器做实体表数据的更新。
3.需要的查询数据时就只查询实体表就行了。
注:实体充当的角色也就是日志的角色。追问

建立视图的话,会因为涉及表太多影响速度吗?另外建表是采用第一种方式还是第二种方式呢?

第2个回答  2012-08-07
我觉得第3种好,因为用第一第二种在写sql的时候会麻烦,到时修改要修改很多地方。
第3个回答  2012-08-07
发一个图,比较直观
第4个回答  2012-08-07
第一种。追问

为什么呢?通常一个表字段太长也不太好吧。

追答

因为我第一种是你最先想到的。

我相信你的第一感啊、

相似回答