做一个统计功能,用函数实现
mysql数据库中有一个location表保存全国所有省市地区的名称和ID,有3000多条
另一个location_site表保存每个地区对应网站的数据(一个地区有一个网站,一对一的关系)
第三个location_statistic表保存每个地区网站的统计信息(也是每个地区有一个统计记录)
函数实现的功能是每天定时更新这些统计信息
在统计的时候,要把子节点的数据一起加上
比如在统计辽宁省的数据时,要连同沈阳市、鞍山市等各个市级行政区域,以及这些市下的区级行政区域的数据一起SUM统计
而location_site只保存本地区节点的信息,不包含下级行政区域的数据
我现在以及有了获取某节点的所有子节点和父节点的函数
每天更新统计信息的话
就要获取某个节点的所有子节点,对这个节点进行统计运算
然后遍历location_statistic表,一条一条数据进行更新
所有子节点是一个字符串,还要用到in去查询,可以说效率非常之低
有没有什么好的办法可以高效完成以上的功能呢,在数据库层面

解决方案 »

  1.   

    高级查询 SELECThttp://www.verejava.com/?id=1717413210274
      

  2.   

    每个id 加上标识符, 属于哪个省啊, 然后表连接, 不就知道 哪个省了, 然后where  条件就出来了啊
      

  3.   

    涉及的业务逻辑略复杂,可以在业务层处理,数据层重逻辑的话,存在的问题在于不好测试并解决bug,完全可以把这些交给业务逻辑处理,如果处理通了某个省市,那其他的就遍历处理即可。参考 深入理解MySQL