首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 用三层数据库的问题
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-13 16:51:08 楼主
    在使用BDE开发三层数据库时,有些人将TDatabase组件放到服务器端的主窗体中,有些人将TDatabase放到远程数据模块中,两种做法的优缺点是什么?哪种做法更合理?请教各位。
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-13 18:43:551楼 得分:0
    三层数据库应该不用BDE吧
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-13 21:45:542楼 得分:0
    http://topic.csdn.net/u/20080413/08/7097bddf-8bb6-4134-a5f7-d9be3028be51.html
    三层用这个.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-13 23:54:133楼 得分:0
    还真没开发过三层以及以上的
    需要学习啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-15 07:11:274楼 得分:0
    不用BDE、不用ADO、不用DBEXPRESS、干脆不用DELPHI。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-15 08:18:345楼 得分:0
    用ADO好一点.为了方便系统维护,一般将公用的数据库像(TDatabase组件)放在
    数据模块中,在三层当中也是这样.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-15 09:02:486楼 得分:0
    我一般都是把ADO的几个控件放到远程数据模块里。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-15 09:16:187楼 得分:0
    人是自自寻烦恼,层越多越烦越不稳定

    看来有些人是没有亲身体验过三层

    我使用过RamObject与IdTcp后的感受: 供大家参考
    1\连接过程的区别:
    两层:Ado直接连接Dbms,进行查询和更新
    三层:客户端加密SQL指令---发送---服务端接受解密----通过线程进行临时连接DBMS----查询到结果---转换成流并加密压缩---发送---客户端接受解密解压----恢复到db控件中

    三层比两层多出了若干中间的环节,所以肯定了三层的速度没有两层的快,这是早就定论的.
    对查询后得到的本地数据集进行更新时,不能像两层直接更新了,三层除了更新本地的,同时还得发出指令更新远程数据库.

    2\Adocon容易出现的问题
    三层中使用Adoconneciton,通过多个线程建立连接,在使用同一个ADocon时是不稳定的,必须为每个线程建立一个adocon,这样由于登录验证的时间,所以更加影响了执行速度.而两层是早已连接上了的,且不会出错.

    3\数据库安全问题
    两层是通过加密符对Ado访问口令的加密
    三层因为不涉及到数据库口令,但TCP通讯时少不了加密,否则,只要连接上IP:PORT,就可以发送指令执行了,
    两种加密都在客户端中,对于反汇编来说,安全性是差不多的了

    4\经常谈到的维护问题
    提到三层,多数人认为可以减少维护量,把所有的业务逻辑放在中间层,便于集中维护.
    大家想一下,现在有多少人真正做到客户端无逻辑运算的,这种做法只是学着B/S,而浪费客户机的资源.
    对于C/S的,他与B/S有着很大的区别,就像QQ也不可能做到逻辑在服务器,维护更新可以通过自动升级来完成.

    5\开发周期
    三层必竟是多了一层,好多内容都是拆分开在两端同时开发,代码的完整性及维护没有两层简单,开发周期也长

    6\三层的优势
    由于我水平有限,至目前所理解的三层优势,只是可以减少 两层adocon连接的个数,从而减少服务器需分配的资源,对于两层,当连接数过多时,数据库是承受不了的,三层调用数据后可以释放连接,不像两层始终占着.

    说了这么多,不是为了说三层不好,而是两层当数据环境在一定范围内是有优势的,而三层则是突破这个数据环境的优势.
    就好比,一共有10个客户端,三层的优势是绝对不会超过两层

    这个是要看环境进行权衡
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-15 23:24:078楼 得分:0
    顶,我就准备用二层写。十个客户端。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-19 17:19:409楼 得分:0
    谢谢LENCON,我用三层是为了跨路由的复杂网络。问题是将TDatabase组件放到服务器端的主窗体中与TDatabase放到远程数据模块中,两种做法的优缺点是什么?TDatabase放到远程数据模块中,远程数据模块是多线程的,每个线程建立一个TDatabase的连接。可是在一些三层例子中TDatabase被放到服务器端的主窗体中,每个远程数据模块中的数据集组件在与服务器端的主窗体中TDatabase组件打交道时,是否还要考虑线程同步问题?两种做法的优缺点是什么?这个度应该如何掌握?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-22 06:21:4310楼 得分:0
    请各位老师请答复,谢谢。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-01 16:33:5711楼 得分:0
    接分是王道!
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved