DELPHI编程如何实现数据库结构的扩展及相关自定义数据库结构如下
1)无版本号 结构
type
TRec=record {定义一个记录}
name:string[10]; //姓名
xb:string[2]; //性别
age:integer; //年龄
yw:integer; //语文
xs:integer; //数学
zz:integer; //政治
end;
2)有版本号 结构
type
TRec=record {定义一个记录}
bbver:string; //版本说明 Ver1.00a
name:string[10]; //姓名
xb:string[2]; //性别
age:integer; //年龄
yw:integer; //语文
xs:integer; //数学
zz:integer; //政治
end;
3)有版本号并加密 结构
type
TRec=record {定义一个记录}
bbver:string; //版本说明 Ver1.00a
name:string[10]; //姓名
xb:string[2]; //性别
//统一数据类型为[字符型数据]方便以后的[加解密处理]
age:string[3]; //年龄 integer
yw:string[3]; //语文
xs:string[3]; //数学
zz:string[3]; //政治
end;
1)无版本号 结构
type
TRec=record {定义一个记录}
name:string[10]; //姓名
xb:string[2]; //性别
age:integer; //年龄
yw:integer; //语文
xs:integer; //数学
zz:integer; //政治
end;
2)有版本号 结构
type
TRec=record {定义一个记录}
bbver:string; //版本说明 Ver1.00a
name:string[10]; //姓名
xb:string[2]; //性别
age:integer; //年龄
yw:integer; //语文
xs:integer; //数学
zz:integer; //政治
end;
3)有版本号并加密 结构
type
TRec=record {定义一个记录}
bbver:string; //版本说明 Ver1.00a
name:string[10]; //姓名
xb:string[2]; //性别
//统一数据类型为[字符型数据]方便以后的[加解密处理]
age:string[3]; //年龄 integer
yw:string[3]; //语文
xs:string[3]; //数学
zz:string[3]; //政治
end;
升级到有“版本号”的
例如无“版本号”的结构是:
100001 王一 男 20 65 75 80
100002 王二 女 21 60 70 82
100003 王三 男 22 62 78 88
100004 王四 女 23 66 79 85
100005 王五 男 24 68 75 90
升级后的有“版本号”
Ver:1.01 100001 王一 男 20 65 75 80
Ver:1.01 100002 王二 女 21 60 70 82
Ver:1.01 100003 王三 男 22 62 78 88
Ver:1.01 100004 王四 女 23 66 79 85
Ver:1.01 100005 王五 男 24 68 75 90
再以后以这个版本来升级数据库的级别
如Ver:1.01升级到Ver:1.02(若数据库版本不是这个版本就不能读取信息及相关操作)
一个“标记”,一个Stream 字段,就把这些变化都涵盖了。
一个“标记”,一个Stream 字段,就把这些变化都涵盖了。
也许某天,你还想玩一种sgz后缀的,也一样可以处理。
升级到有“版本号”的
例如无“版本号”的结构是:
100001 王一 男 20 65 75 80
100002 王二 女 21 60 70 82
100003 王三 男 22 62 78 88
100004 王四 女 23 66 79 85
100005 王五 男 24 68 75 90
升级后的有“版本号”
Ver:1.01 100001 王一 男 20 65 75 80
Ver:1.01 100002 王二 女 21 60 70 82
Ver:1.01 100003 王三 男 22 62 78 88
Ver:1.01 100004 王四 女 23 66 79 85
Ver:1.01 100005 王五 男 24 68 75 90
对于源数据库每条记录你需要:
如果源数据库的结构你有的话,那么新旧数据库不同字段之间的映射关系你是清楚地,可能新的数据库里面有部分字段原来是没有的,除了这部分不赋值或者赋一个新的缺省值,其它的根据映射关系填充新的结构体的内容;然后按照新的结构体组织SQL语句入库。
一大堆的Ver:1.01都是冗余信息,明显不合理的设计。
2)有版本号 结构
type
TRec=record {定义一个记录}
bbver:string; //版本说明 Ver1.00a
name:string[10]; //姓名
xb:string[2]; //性别
age:integer; //年龄
yw:integer; //语文
xs:integer; //数学
zz:integer; //政治
end;
并将版本的字段上做了个标记,有版本号是就写个“版本号”,无版本是就以0为标记
谢谢各位的赐教