纳税人档案数据模型设计探讨
档案数据抱括了纳税人方方面面的信息:
税务信息:
纳税人登记信息
纳税人涉税信息
纳税人财务信息
纳税人出口退税信息
纳税人发票信息
其他
交换信息:
纳税人相关法人证件信息(来源与公安数据交换)
纳税人工商登记信息(来源与工商数据交换)
海关报关信息(来源与海关数据交换)
所有相关委办局纳税人信息
信息分类:
结构化数据
非结构化数据
影像资料
关系模型描述:
涉及几千张表,表关系复杂,难于管理
关系型数据难于实现可抵赖性设计
档案版本变化支持困难,数据模型稳定性差导致大量系统维护工作
对非结构化数据支持困难
关系型设计引发的问题总结
正如上图中所示,在业务变化没有导致表结构变化的情况下(无红色部分),数据模型还是相对清晰,容易管理的,但当业务变化导致出现增加列、增加表等情况时,情况就变的越来越糟糕(增加红色部分),上图左侧所描述的问题出现了。长此以往,数据库里堆积了很多垃圾表,以致于无法管理的地步。
纵表设计也有下图中描述的一些问题存在:
应该采用更加灵活的数据模型进行描述,关系型和XML相结合的数据架构能够避免以上问题,增加系统灵活性。
从上图可以看出,描述档案内容的共有属性一般包括标识符、名称、分类属性、时间属性、管理属性等,这些属性是稳定的,我们把这些稳定的属性设计成关系型数据。而对于档案的内容信息是不稳定的,业务上经常出现表单等变化,需要经常调整,这些不稳定的数据我们采用XML类型的关系列来存放,优势如下:
XML自身的层次结构能够描述复杂的数据,针对传统设计中采用LOB大字段处理的信息可以通过XML类型来解决,并可以通过SQL/XQUERY灵活访问
数据模型中的表明显减少,表之间的关系也大大简化,便于管理
XML通过匹配多版本的SCHEMA及XSLT体现灵活性,很容易适应业务变化
XML很好的支持数字签名等安全机制,很容易实现防抵赖
设计示意如下:
上图中我们发现两个XML列字段,这两个字段容纳了税务登记信息及税种核定信息,这在以前关系数据库设计中需要约20张关系表进行描述,现在只需一张表。XML字段以下图所示的层次机构清楚的描述税务登记信息的内容。
综上,采用关系型和XML混合建模适合档案系统的建设,大大提高系统灵活性,参考下图:
如上图所示,数据模型简化且相对稳定,通过XML匹配响应的SCHEMA及XSLT实现应对业务变化,数据模型相对保持一个清晰的结构,不会出现蜘蛛网状的表间关系。通过动态拼装XML形成复杂的纳税人档案全景数据视图。