您的位置:首页 > 其它

基于数据字典的通用查询系统(四)实体类的设计 1

2008-12-18 23:41 435 查看
我们分为两个部分对这个模块中的信息进行Class的抽象,一是从数据库结构进行抽像,一中是从查询的构造过程进行抽象。

在列出包含的类之前,有一点需要说明,就是,正如前面分析,我们要对每一个元素都有一个对数据库的表示,和对用户的表示,在这里,我把对数据库的表示统一为属性Exp,对用户的表示统一为Show

一.从数据库结构进行抽像。

1. 表示数据库中的表的类QueryTable

2. 表示数据库中的列的类QueryCol

3. 表示数据库中的连接的类JoinCondition

4. 表示数据类型的枚举ColShowType,就是我们在第二篇中分析的那四种数据类型(数值,日期,字符串,状态位)

5. 表示数据库中状态位的ColStateValue;

6. 为了操作方便,抽像出集合JoinCoditions,ColStateValues;

类图如下:

namespace SFTech.Query.Entity

{

public class ColStateValues : List<ColStateValue>

{

private System.Collections.Hashtable _hash;

internal ColStateValues(String values)

: base()

{

string[] value = values.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);

string show;

string _value;

_hash = new System.Collections.Hashtable();

for (int i = 0; i < value.Length; i++)

{

if (value[i].IndexOf('&') >= 0)

{

show = value[i].Substring(0, value[i].IndexOf('&')).Trim();

_value = value[i].Substring( value[i].IndexOf('&')+1).Trim();

}

else

{

show = value[i].Trim();

_value = value[i].Trim();

}

_hash.Add(_value , show );

this.Add(new ColStateValue(show,_value));

}

}

public String GetState(string value)

{

return _hash[value] as string ;

}

}

}

这里已经考虑了用字符串等其他非数值信息做状态位的情况。。

各位看官别说看的头大啊,小的文笔有限,只能先写成这个样子了,呵呵。

明天该写最关键部分,查询部分类库的设计了,呵

系列文章连接

一。SQL语句的构成分析

二。数据库组成结构的分析。

三。数据库设计。

四。实体类设计

五。算法实现
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐