征求关于商务'行业分类[统计出个数,要求同步更新,数据或者业务逻缉操作优化方案.
例如:数据行业表
Sys_Category 表:
ID CateogryName Parent_ID
1  生活用品       0             --0:表示根
2  牙刷           1             -- :表示是生活用品的子类corp_trade 表:
ID Trade_Name Cateogry_ID
1  XXX        1
2  XJAD       2
3  ASDF       2
4  ADF        1
5  ADSF       1统计行业:生活用品(5)-->牙刷(2)  结果
现在方案1:从行业类别表中分离计算出一个行业关系表{生活用品-->牙刷}..再通过 Corp_Trade 表分类计算 Count(1) 出来. ---即时更新实现了,可是太慢
方案2:  创建一个分类统计表:写作业.每天定时统计出结果...表现层直接读取结果...这个快.可是没有达到实事更新..

解决方案 »

  1.   

    关于此递归表,统计类型数量结果的方法,
    如果用 sql语句去表里一行一行的查,结果可想而知.
      

  2.   

    这个是父类
    select c.Total,d.ID,d.CateogryName from Sys_Category d inner join(
    select Sum(b.Num) as Total,a.ID from Sys_Category a inner join (
    select count(*) as Num,Category_ID from corp_trade Group by Cateogry_ID) b
    on a.ID = b.Category_ID or a.Parent_ID=b.Category_ID group by a.ID ) c
    on d.ID=c.ID
    子类
    select a.ID,a.CateogryName,a.Parent_ID,b.Num from Sys_Category a inner join (
    select count(*) as Num,Category_ID from corp_trade Group by Cateogry_ID) b
    on a.ID=b.Cateogry_ID where a.Parent_ID!=0 在asp.net中填充在一个DataSet中。
    然后 ds.Tables[0].ChildRelations.Add("Relation", ds.Tables[0].Columns["ID"], ds.Tables[1].Columns["Parent_ID"]);
    页面上用两个嵌套的Repeater实现,把ds.Tables[0]绑定在Repeater1上,Repeater2在Repeater1,Repeater2的DataSource='<%# ((System.Data.DataRowView)Container.DataItem).Row.GetChildRows("Relation") %>'这个应该不会太慢