纵表的实现,可以使用于各种不同的业务,不会因为业务、行业的改变而改变。现在的实际情况是,各行业各业务都有各自不同的表设计;如一个电信行业的一套支撑系统就会有竟千张表。于是自然的会想到是否有一种通用的表结构呢,纵表是一种选择;设计一个用于存储的纵表结构,在程序级组建类似SQL查询;把查询完全搬入程序中。
下面对纵表的猜想做一些描述:
一个特殊的表对数据库表的字段明进行管理,每个表就是一个对象,这些管理的字段都是对象的属性
数据库中一条记录就是一个对象实例,一个特殊表对实例的数据进行管理。如状态,部门,学历,岗位等。
数据流图为:数据库
->业务程序代码->数据库
通过该工具生成两份
xml档,一份描述数据库结构,用于在数据库中生成数据库表(不同的数据库,挂不同的生成插件),一份用于描述业务,用于生成造作数据库的业务程序(不同的程序语言,挂不同的生成插件)。
数据库表安数据存储功能设计,没有任何业务关系,可分为:
数据表名
|
表结构
|
用于生成表的xml名
|
xml结构
| ||||||||||||
个表或记录之间的关系只有1:1 或1:N的关系
| |||||||||||||||
对象数据字典
(ClassDicy)
<表里的数据没有任何约束
,系统号,标识号都唯一>
|
|
ClassDicy.dicy.xml
|
<ClassDicy>
<SystemID></SystemID>
<BusinessID></BusinessID>
<Content></Content>
</ClassDicy>
| ||||||||||||
静态数据字典
(DataDicy)
<表里的数据没有任何约束,系统号,标识号都唯一
>
|
|
DataDicy.dicy.xml
|
<DataDicy>
<SystemID></SystemID>
<BusinessID></BusinessID>
<Content></Content>
</DataDicy>
| ||||||||||||
对象数据字典关系
(ClassDicyRelat)
|
|
ClassDicyRelat.dicy.xml
|
<ClassDicyRelat>
<SystemID></SystemID>
<BusinessID></BusinessID>
<Content></Content>
<Relat></Relat>
</ClassDicyRelat>
| ||||||||||||
静态数据字典关系
(DataDicyRelat)
|
|
DataDicyRelat.dicy.xml
|
<DataDicyRelat>
<SystemID></SystemID>
<BusinessID></BusinessID>
<Content></Content>
<Relat></Relat>
</DataDicyRelat>
| ||||||||||||
每个对象里都要有CreateDate时间,UpdateDate时间,方便记日志
| |||||||||||||||
对象
(Class)
|
|
Class.Class.xml
|
<Class>
<SystemID></SystemID>
<BusinessID></BusinessID>
<Content></Content>
</Class>
| ||||||||||||
对象关系
(ClassRelat)
|
|
ClassRelat.Class.xml
|
<ClassRelat>
<SystemID></SystemID>
<BusinessID></BusinessID>
<Content></Content>
<Relat></Relat>
</ClassRelat>
| ||||||||||||
对象日志
(ClassLog)
|
|
ClassLog.Class.xml
|
<ClassLog>
<SystemID></SystemID>
<BusinessID></BusinessID>
<Content></Content>
</ClassLog>
| ||||||||||||
实例所有相关表安对象分类,分成很多表
| |||||||||||||||
实例
(Object)
|
|
CD_3Object.Object.xml
|
<CD_3Object>
<SystemID></SystemID>
<Content></Content>
</CD_3Object>
| ||||||||||||
实例关系
(ObjectRelat)
|
|
|
| ||||||||||||
实例日志
(ObjectLog)
|
|
CD_3ObjectLog.Object.xml
|
<CD_3ObjectLog>
<SystemID></SystemID>
<Content></Content>
</CD_3ObjectLog>
|