这样设计系统是好还是坏

老子 2006-09-05 06:13:59
有这么一个系统,在设计时,每个表为一个类,系统有100多个表,就是100多个类,每个类为一个单元,每个字段就是类的属性,所有的SQL都写在类中,再把返回值给Form中的控件中。(涉及复杂的SQL,就麻烦大啦),一个城市的小表,我就写了两天,要是用dbgrid+adoquery,一个小时就搞定,请问大家伙,这样设计系统是不是画蛇添足??????????
...全文
282 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
DunDao 2006-09-07
  • 打赏
  • 举报
回复
貌似Hibernate,呵呵。
AOCOC 2006-09-07
  • 打赏
  • 举报
回复
用这方法维护方便,我们的也是这样设计的。。
andyzhou1101 2006-09-07
  • 打赏
  • 举报
回复
我一般也是这样设计的

:)
wudi_1982 2006-09-06
  • 打赏
  • 举报
回复
维护会比较方便。前人栽树,后人乘凉
mofaser 2006-09-06
  • 打赏
  • 举报
回复
哪位XD有类似的demo不妨贴一个完整的出来,借鉴一下。

这个是不是所谓的“平台”开发
GARNETT2183 2006-09-05
  • 打赏
  • 举报
回复
将相同和有关系的数据抽象起来,拾配不同的模式进行组合...这样可以减少代码量,而且结构清析...当然不能太乱.......
pilicat 2006-09-05
  • 打赏
  • 举报
回复
路过,看看。
sdzeng 2006-09-05
  • 打赏
  • 举报
回复
建议去了解一下Hibernate
它的做法就是为每一个表生成一个类

如果表比较多的话,应该要有一种根据表结构自动生成类的机制,
否则写起来很麻烦

yuehaiyang 2006-09-05
  • 打赏
  • 举报
回复
我不是这样做的
柯本 2006-09-05
  • 打赏
  • 举报
回复
我就是这样设计的,所有的表都是一个类,不过,我的类是自动生成的,根据表结构自动生成类及相应的SQL,你可先写一个生成类的程序(不然100个类是要写晕了)
我的生成类的程序是用awk写的,我的开发过程为,先定义一表结构(文本形式),然后根据表结构生成相应的建表SQL,并生成相应的类,每个类基本结构大至如下:
//工作简历库
TGZJLK=object
GZJLBM:integer;
GRBM:integer;
DWMC:string[60];
QSRQ:string[10];
ZZRQ:string[10];
GZBM:string[20];
JCLB:string[4];
UpdateStat:boolean;
Function InsertIt:Boolean;
Function GetDataFromDataSet(const asql:TDataSet;const tran:boolean=true):Boolean;
Function SetDataToDataSet(const asql:TDataSet):Boolean;
Function saveIt(const st:TDataSet):Boolean;
Function UpdateIt(st:TDataSet):boolean;
end;
而函数的实现为:
Function TGZJLK.InsertIt:Boolean;
Begin
Result:=False;
try
CurDatabase.StartTransAction();
With CurDatabase.IBSql do
begin
Sql.Text:='Insert into GZJLK ( GZJLBM,GRBM,DWMC,QSRQ,ZZRQ,GZBM,JCLB) '
+Format('values ( ''%d'',%d,''%s'',''%s'',''%s'',''%s'',''%s'')'
,[GZJLBM,GRBM,DWMC,QSRQ,ZZRQ,GZBM,JCLB]);
ExecSql();
CurDatabase.Commit();
end;
ReSult:=True;
except
on E: Exception do
begin
CurDatabase.RollBack();
TUtils.ShowMess(e.Message);
end;
end;
end;
//其它函数略
上面的代码都是由以下文本生成,不需自己写任何代码
---------------------------------------------------
工作简历库
--------------------------------------------------
工作简历编码(内部码) I R K A
个人编码 I R
单位名称 C 60
起始日期 C 10
终止日期 C 10
工作部门 C 20
奖惩类别 C 4
---------------------------------------------------------
我们甚至可以由以上结构生成一个简单的输入界面

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧