关于字典表数据级联关系的说明

来源:互联网 发布:阿里云邮箱用户名忘记 编辑:程序博客网 时间:2024/05/03 01:35
因为之前在设计tbl_dictionary_info(字典表)时,只设计了两级关系,用来表示一个大类底下的有多少个小的分类。

      ID        |     TYPE_NAME      |         TYPE_CODE      |        ITEM_NAME       |         ITEM_CODE       |        SORT_NO       |  .......
(项的主键)       一级类名                          一级编码              二级(项)类名         二级(项)编码                  项的序号    
    106              广告位类型                     AD_TYPE                       固定                         FIXED                             1
    107              广告位类型                     AD_TYPE                       漂浮                         FLOAT                            2 
    108              广告位类型                     AD_TYPE                       弹窗                         POPUP                            3 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------
但是现在公司提供过来的数据分为了好几个层级,这样在存入字典表的时候需要提现其层级关系。

数据如图:



关于这样的表格类别名称的说明:
1.分三个层级:
      大类用A开头,中类用B开头,小类用C开头。
2.命名:
     A01下面中类从B01,B02,B03...开始,A02下面的中类也从B01,B02,B03...开始,A03下面的中类也从B01,B02,B03...开始。
     .以此类推,也就是说每一个大类下的中类都是从B01,B02,B03...开始。
     同理;
     每一个中类下的小类都是从C01,C02,C03...开始的。    
      
像这样的大于二个层级关系的可以这样设计设计字典表格。
 ID        |     TYPE_NAME      |         TYPE_CODE      |        ITEM_NAME       |         ITEM_CODE       | 

                    大类名称                      大类编码                      中类名称                      中类编码

-----------------------------------------------------------------------------------------------------------------------------

 ID        |     TYPE_NAME      |         TYPE_CODE      |        ITEM_NAME       |         ITEM_CODE       | 

                    中类名称                      中类编码                      小类名称                      小类编码

-----------------------------------------------------------------------------------------------------------------------------

总结一下,也就是说,type_***** 存放的是  item_*****  的上一级的类别名称和类别代码。

然后为了能更高效的查询到这个类别的上一级类别,比如想知道 “财经资讯”,这个中类属于哪个大类,就在字典表中多添加了一个属性PARENT_ID(父级ID),这样利用HIbernate的根据属性ID就能查找出相应的对象的特性,就能跟方便的知道上一级别的对象了。

 ID        |     TYPE_NAME      |         TYPE_CODE      |        ITEM_NAME       |         ITEM_CODE       |           PARENT_ID


本级ID           父级名称                       父级编码                     本级名称                      本级编码                            父级ID

-----------------------------------------------------------------------------------------------------------------------------------------------------------

举例: 
    查询  “内容主题分类标准” --》  "金融理财"  --》  “股票”  --》  “美国股票”

如图:
先查找小类的记录。
其中:ID,ITEM_CODE,ITEM_NAME,记录的都是本记录的信息
          PARENT_ID,TYPE_NAME,TYPE_CODE,记录的都是父级记录的信息




然后通过该条记录的 PARENT_ID 可以查找到其父级记录。可以看见中类的记录信息。







然后在根据中类的  PARENT_ID  就可以查找到 大类记录的信息。




然后在根据中类的  PARENT_ID  就可以查找到 大类记录的信息。
0 0
原创粉丝点击