A
Another_eYes
Unregistered / Unconfirmed
GUEST, unregistred user!
这几个月一直有个想法萦绕于脑海中, 现提出一些不成熟的思路望大家探讨.
. 实现难度如何?
. 执行效率如何?
. 扩展性如何?
. 有无先例?
. 值不值得做?
1. 想法的产生
由于一直在做MIS, 对编程中烦琐的数据库关系操作与调试深恶痛绝, 对日后的修改与
维护的工作量恐惧之至. 一直想找一种一劳永逸(当然是不可能的)的解决方法. 没有一
劳永逸的解决方法, 退而求其次, 想找到一种能大幅度降低工作量的方法.
主要想要解决两方面问题:
(1) 能大幅度降低编程难度: 最好所有工作只需操作一个表, 那样就没有编写数据库程
序时要考虑的各表关联所产生麻烦(特别是修改,添加或删除记录时).
(2) 能大幅度降低日后的升级与维护工作量, 最好能做到全部远程维护与升级(包括全盘
替换成新系统).
2. 主要目标
(1) 通用中间层: 中间层实现所有表间逻辑关系, 数据库牵涉多个关联表的修改, 添加,
删除应用由中间层自动分析关联关系, 自动对多表进行操作. 由于是通用的, 所以可以
针对不同实际应用(别拿臭鸡蛋打我, 并非不可能!)
(2) 独立客户端: 所有操作牵涉的只有一个简单的"表", 编程时只要考虑怎么对这个"表"
进行操作, 至于这个"表"中具体某个字段在真实数据库中处于哪个库哪个表或者完全
是个计算字段(甚至是另外某个表?), 在开发客户端时完全不必考虑, 也就是说在开发时
完全不必关心真实数据库究竟是什么样的, 真实数据库在开发客户端时是不可见的.
客户端开发时只要集中精力考虑客户端所要实现的应用逻辑与用户界面. 好象蛮适合
多组同时开发(或者分包开发)哦.
(很象是痴人说梦吧?)
3. 实现思路
(1) 中间层
既然要做通用. 我考虑的是建立一种中间层模板(借用word模板的概念), 不同的应用只
要根据具体应用对模板进行最小程度修改就能高效快速地完成任务. 那么, 首先我们要
做的就是提取所有应用的共性, 实现这个共性后再对特殊应用特别处理.
其实不管什么应用, 对数据库的操作无非查询, 修改, 添加和删除(哦, 还有备份, 不过这
也可以归入查询里面).如果我们有了很详细的数据库设计方案, 那么我们就可以知道
各表的关系(废话). 如果将这些表结构与表间关系记录到一个自定义结构的文件中, 再
由中间层程序对这个文件进行分析, 就能在客户端提出请求时明确得知需要具体操作
哪些表.
说白了, 中间层就是个解释器, 它解释客户端的请求, 根据表结构与表关系定义文件产
生SQL提交数据库服务器, 然后将结果合并成一个(或多个)数据集返回请求者. 这样,
针对不同应用只要定义不同的表结构与表关系文件就能实现大部分的通用了.
(2) 客户端
待续......
. 实现难度如何?
. 执行效率如何?
. 扩展性如何?
. 有无先例?
. 值不值得做?
1. 想法的产生
由于一直在做MIS, 对编程中烦琐的数据库关系操作与调试深恶痛绝, 对日后的修改与
维护的工作量恐惧之至. 一直想找一种一劳永逸(当然是不可能的)的解决方法. 没有一
劳永逸的解决方法, 退而求其次, 想找到一种能大幅度降低工作量的方法.
主要想要解决两方面问题:
(1) 能大幅度降低编程难度: 最好所有工作只需操作一个表, 那样就没有编写数据库程
序时要考虑的各表关联所产生麻烦(特别是修改,添加或删除记录时).
(2) 能大幅度降低日后的升级与维护工作量, 最好能做到全部远程维护与升级(包括全盘
替换成新系统).
2. 主要目标
(1) 通用中间层: 中间层实现所有表间逻辑关系, 数据库牵涉多个关联表的修改, 添加,
删除应用由中间层自动分析关联关系, 自动对多表进行操作. 由于是通用的, 所以可以
针对不同实际应用(别拿臭鸡蛋打我, 并非不可能!)
(2) 独立客户端: 所有操作牵涉的只有一个简单的"表", 编程时只要考虑怎么对这个"表"
进行操作, 至于这个"表"中具体某个字段在真实数据库中处于哪个库哪个表或者完全
是个计算字段(甚至是另外某个表?), 在开发客户端时完全不必考虑, 也就是说在开发时
完全不必关心真实数据库究竟是什么样的, 真实数据库在开发客户端时是不可见的.
客户端开发时只要集中精力考虑客户端所要实现的应用逻辑与用户界面. 好象蛮适合
多组同时开发(或者分包开发)哦.
(很象是痴人说梦吧?)
3. 实现思路
(1) 中间层
既然要做通用. 我考虑的是建立一种中间层模板(借用word模板的概念), 不同的应用只
要根据具体应用对模板进行最小程度修改就能高效快速地完成任务. 那么, 首先我们要
做的就是提取所有应用的共性, 实现这个共性后再对特殊应用特别处理.
其实不管什么应用, 对数据库的操作无非查询, 修改, 添加和删除(哦, 还有备份, 不过这
也可以归入查询里面).如果我们有了很详细的数据库设计方案, 那么我们就可以知道
各表的关系(废话). 如果将这些表结构与表间关系记录到一个自定义结构的文件中, 再
由中间层程序对这个文件进行分析, 就能在客户端提出请求时明确得知需要具体操作
哪些表.
说白了, 中间层就是个解释器, 它解释客户端的请求, 根据表结构与表关系定义文件产
生SQL提交数据库服务器, 然后将结果合并成一个(或多个)数据集返回请求者. 这样,
针对不同应用只要定义不同的表结构与表关系文件就能实现大部分的通用了.
(2) 客户端
待续......