类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
■■■■■■■数据层设计方案奥妙(高分请教)■■■■■■■■■■
想做个支持多种数据库的软件,并方便扩展新的数据库支持。
是分别做相应的数据访问层好,还是开发个可以分析语法的数据适配器好,
或是有什么别的好建议,高分奉送!!!
网友回答:
个人觉得如果要突出各数据库的一些优点的话还是分别做相应的数据访问层好,像我们公司的产品就是分别对ORACLE、SYBASE、INFORMIX开发一套数据库的操作封装底层,对外的接口都一样,但每个底层分别对应不同的数据库做处理。
如果对SQL语句的处理不是特别复杂的话,可以考虑做分析语法的数据适配器,但这样一般只能用一些标准SQL语句,会牺牲一些数据库的个性。
最好是为不同的DBMS写出接口相同的适配器。不同的数据库使用的SQL是有区别的,比如在处理有空格或是与保留字冲突的字段名时,Oracle用"",Access用[],SQLServer两种都能用……所以如果有可能,最好把生成最终SQL语句的责任交给底层的数据库适配器。做得简单一点就把常用的查询结构总结出对象结构,数据库配器进行解释并生成SQL语句。复杂的话就定义自己的SQL标准,由适配器把它转换为DBMS相关的SQL语句。
分别做相应的数据访问层.并提供统一的接口,可以定义一个数据抽象层,规范所有接口,由数据抽象层派生针对不同数据库系统的数据操作层.
呵呵,有点象ADO的访问架构了.
不要使用分析语法的DataAdapter...效率不高,扩展性不好.