老问题重新谈,还是关于数据库
今天遇到一个技术上的问题,还是老的话题。
一个软件设计是围绕数据库的还是领域对象的问题,问题是这样的。有两个系统,分别有两套数据库结构,经理非要将其中一个代码修改一下,将两个数据库结构融合在一起,也就是说原来是两张数据表现在放在一张里,目的是为了将两个系统做一个整合。
我的意思是在两个系统上添加一个公共接口,这样扩展第三个的时候也就不用修改现在的代码了。但是经理坚决的提出了反对,并且指责我说做系统就没有这么做的。并且用了一个例子告诉我,如果将来做查询统计怎么做?差一张表不比查几张表快?一共用户同时在两个表里都有记录,按照用户的总记录数做一个排序怎么做?当时我说了自己的想法,但是经理一句效率呢?把我问住了。
我确实不明白,如果按照设计模式去设计系统效率怎么样。做系统的时候真的可以不考虑数据库吗?
说句心里话,长久以来一到做查询统计的时候就头痛,说白了,还是让数据库去做这个工作效率最高,但是要是这样就必须从数据库的角度入手,分析设计系统。
至于缓存,说真的,缓存并不是时时刻刻都可以用在系统里的。一个几十万的数据做一下缓存用了8G,N多的历史记录数据库可想而知,如果都用缓存再好的硬件也无法胜任,靠缓存不是很现实,听听大家的想法,如果是你,你会怎么做。