最近接到一个项目,数据库需求比较怪异,数据库是直接使用客户的。打个比方,可能不太恰当:有10个客户,他们都有自己的进销存系统,然后我写了个进销存,能直接套用他们的数据库直接使用
而他们的数据库由于是不同厂家开发的,所以数据结构不太相同,但所需要的数据基本还是能取到的。
这样的需求数据层应该如何设计比较好!
不知道大家有没有遇见过,或者有比较好的意见给点拨点拨,小弟感激不尽了!
而他们的数据库由于是不同厂家开发的,所以数据结构不太相同,但所需要的数据基本还是能取到的。
这样的需求数据层应该如何设计比较好!
不知道大家有没有遇见过,或者有比较好的意见给点拨点拨,小弟感激不尽了!
同意。对于设计c/s系统就是如此简化即可。注意我指的不是使用一个c/s数据库的开发,使用这类关系数据库之后程序员就可以在本地调用关系数据库接口进行操作,由于程序员从来不亲自定义功能服务接口(作为通讯规范发布给不同客户端平台),于是就容易忘记了分层概念。
我初步想法也是不想太纠结于这个数据层怎么设计,先拿一个数据库来写,把整个软件的界面和业务逻辑那块都写好,保证OK。然后数据层这块就可以独立出来解决了。实在不行,最笨的办法一个数据库写一套也可以,呵呵~··然后关于这个数据层,我不太赞成用orm,因为表结构有差异,而且说不定有的表结构定义可能差很远。
反正都能取到大概需要的信息,是不是直接用一个兼容多种数据库工厂类+sql语句,来得更简便?或者有更好的办法?
张逸: 选择某种技术,首先要看其具体应用的场景和需求,而不是觉得这门技术好或者新就选用。对于B/S系统而言,如果需求没有要求其他系统采用服务的方式调用该B/S系统,那就没有必要采用WCF 技术。最合理的方式是,在B/S系统中,专门设计一个服务层,体现所谓面向服务的特点,这个服务层中的服务相对粒度较粗一点,而且应该是其他系统可能会调用的。我们可以事先考虑到这一层的设计。它并不一定是B/S系统内部调用,而是考虑未来的扩展。
------------------------------首先我承认wcf我了解的不是很多,我是看到这里才产生的一些顾虑!具体用不用wcf,肯定还是需要好好了解下这个技术才能够下定论的。呵呵~··
反正都能取到大概需要的信息,是不是直接用一个兼容多种数据库工厂类+sql语句,来得更简便?或者有更好的办法?-----------------------这块有什么好的建议吗?呵呵
10个客户都有自己的进销存数据库,所需要的数据应该是统一的吧。
按照需求的数据建数据库,然后定时采集信息到这个数据库。定时采集可以做一个windows服务或者WinForm