首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于一个设计思路解决思路

2013-07-25 
关于一个设计思路本帖最后由 top8843 于 2013-07-17 20:17:39 编辑一个基本的用于构建树的表,字段:ID,Titl

关于一个设计思路
本帖最后由 top8843 于 2013-07-17 20:17:39 编辑 一个基本的用于构建树的表,字段:ID,Title,ParentID,需要输出如下数据:ID,Title,IsParent(是否包含子节点),于是我在表里增加了bit型字段IsParent,SQL语句为:


SELECT ID,Title,IsParent FROM tbDept

现在我觉得IsParent这个字段不好维护,每次增删改时,都可能要涉及到IsParent 值的变动,于是,我想到了删除这个字段,而改为每次查询的时候,来计算是否包含有子节点:

SELECT ID,Title,(select count(*) FROM tbDept b WHERE b.ParentID = a.id) FROM tbDept a

我之所以先没有这个方式,是担心每次查询都要动态计算是否包含子节点,会影响性能,但刚才测试发现,两千多的数据,查询时间,几乎没有差异
所以,我想请大家给个建议,哪种方式更好? SQL 性能优化
[解决办法]
第一个性能肯定好,第二个有一次表连接,两千条数据看不出,再多点数据应该就能看出来,试试2w和20w
[解决办法]
IsParent其实是冗余字段了
查询时,方便高效了
维护时,麻烦了一点,需要多维护一个属性

热点排行