• 行政机构处理


    省、市、县、乡/镇、村、组,以及这些地区的医疗机构,行政单位,都存储在base_org表中。

    省、市、县、乡/镇、村、组,属于行政区划。

    政府部门:行政单位。

    行政区划、行政单位、医疗机构,在base_org表中,根据字段org_type区分。

    base_org表的字段:

    字段 字段含义 使用说明
    org_id id,主键  
    org_code 编码  
    org_name 名称  
    org_type 机构类型,1.行政区划,2.行政机构,3.医疗机构  
    parent_id 父级id 根据这个字段,可以查到所属上级行政区划。
    org_seq 从省级顶级开始,到此条记录,所有的org_id按顺序的排列,以"."分隔。比如:0.1.12.123.1234. 根据这个字段,可以一次查到所有上级行政区划。也可以通过这个字段,查到所有下级,下下级……行政区划。只要以此org_seq开头即可。
    fp_code 当前机构所属的省级行政区划的code

    相比一级一级的查,下面这几个字段,可以更快的定位所属的省市县。比如,此条记录是村里的组,那如果要查组所属的省或市,就要一层一层往上推,使用SQL也会比较麻烦,不能一下子查出来。

    但如果在维护的过程中,存储了这几个字段,在查询和统计时,就可以快速查到了。

    fp_name 当前机构所属的省级行政区划的name 同上
    fc_code 当前机构所属的市级行政区划的code 同上
    fc_name 当前机构所属的市级行政区划的name 同上
    fr_code 当前机构所属的县级行政区划的code 同上
    fr_name 当前机构所属的县级行政区划的code

    同上。如果没有存储这几个字段,那要查一个省下每个市的统计数据,就要先根据省的orgid,查到下级所有市的orgseq。然后逐个统计每个市里所有的级别的数据。那么逐个统计就会比较慢。最快的SQL查询方法是分组group by一次查出所有的市统计数据。因为orgseq下级又会有很多子级,那么,要使用group by,就只能对substring(orgseq,N)的结果进行group by了。虽然显得不那么简洁,但是也比逐个统计市级效率和速度要快。

    补充:在实际的开发中,由于用group by substring(orgseq,N)的语法略微复杂,有些开发人员对语法不熟悉,会不想用这种方式。所以,在实际的开发中,我们采用的是用Java代码来处理这个过程。具体方式如下:

    要做的功能:查某个县级下所有乡镇的统计数据,并展示出每个县的统计值。

    做法:步骤1.通过seq like '县的seq%' 查出某个县下所有的数据的list。

            步骤2.查出县下所有的乡镇对象组成的list。

         步骤3.循环第2步乡镇的list,

          for(乡镇i : 乡镇的list){

            new map存储这个乡镇的统计数据

            new 乡镇的num;

            for(数据j : 第一步的数据list){

              if ( 数据j.seq contains(乡镇i.seq) ){

                则,乡镇的num累加。

                把乡镇的num存入map中。

              }

            }

          }

  • 相关阅读:
    动态可配置表单的设计构思
    mysql之视图
    mysql学习之数据备份和恢复
    mysqli操作
    mysql登录出现1045错误修改方法
    mysql之简单的多表查询
    sql优化的方法总结
    mysql语句操作
    linux 批量替换文件内容
    zend framework 数据库操作(DB操作)总结
  • 原文地址:https://www.cnblogs.com/mySummer/p/14757474.html
Copyright © 2020-2023  润新知