博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从痴迷数据库SQL语句逐渐走进面向对象化(系统的核心以处理对象为主、淡化数据库概念)...
阅读量:6809 次
发布时间:2019-06-26

本文共 1364 字,大约阅读时间需要 4 分钟。

几年前写信息管理系统都要设计很多很多表,每个表都是自己建立的,然后喜欢用高

  性能、高超的SQL语句搞定很多复杂的商业逻辑问题,那SQL语句又长又复杂,一般人

  还读不懂,但是代码很少、性能很高,其实软件公司里并不是人人都是高手,这样的

  SQL语句其他人也不好仿造也没能力维护,他们也无法按你的思路搞定复杂的逻辑,很

  容易变成无法入手,对项目也帮不上大忙的状态。

  

  这几年,由于建设的信息系统也多了,往往需要在几个系统之间进行集成,例如,你

  的用户表不在你的数据库里,你的角色数据在另外的XML文件里,你无法写一个SQL语

  句,里面又有从角色XML数据里读取的数据又有另外一个系统或服务里读取过来的数据,

  这时往往需要你的系统的健壮性更强大、更灵活、能够快速按实际需要改进。

  

  虽然就这么小小的变化,但对于有多年积累的系统来讲,完全按照这个需求去改进,

  还真不容易,我曾经花费3-4个月时间,把系统从面向数据库表,完全修改为面向对象

  的理念,这个真的是一个痛苦的挣扎过程,因为需要很多环节都需要进行彻底的改变,

  会有放弃改进的念头,但是我还是坚持下来,把整个系统都翻天覆地的改进了。

  

  经过一番痛苦的改进过程,又维护了一段时间,新系统也渐渐的稳定下来了,经过这

  几年的实战,现在的系统真的是有明显的改进,系统里很少见到复杂的SQL语句,都是

  由很简单的语句,读取到这些对象,然后通过C#程序处理对象与对象之间的逻辑关系,

  很少写超级复杂的SQL语句了,每个处理步骤都很简单,把一个复杂的过程分解成了若

  干个简单的处理过程,思路也清晰,条理性也强了很多,多种数据库的移植也变得很轻

  松了。

  

  现在数据表里的任何一个表都可以删除掉,把数据放在XML文件里或者从其他数据库里

  读取、甚至从其他服务程序里读取,因为系统是基于对象的核心处理,而不是基于数据

  库表、SQL语句的处理思想,这样就很容易与其他系统进行整合及不依赖与某个数据库

  系统了,数据也不用重复存取,减少了冗余。

  

  每个进步都是经过反反复复的对比,推敲后才形成的,我感觉这次的改进,在编程架构

  的身心高度都有明显的提高,特意写下来,分享给大家。

  

  简单的讲:信息系统中的数据未必都在数据库里,甚至SQL语句不能读取到表,系统的

  某部分数据可能在XML里,也可能在TXT文件里,若你手上有个成熟的系统,想改进,

  你就能体会工作量有多大,若是没有历史包袱,那是很容易接纳这个思想。

  

  数据库技术出身的开发人员,很容易犯跟我类似的错误,系统里到处是高超的SQL语句,

  若你已犯了跟我一样的错误,要记得面向对象化了,别当老顽固哦,大型软件项目开发

  时确面向对象化是比面向数据库SQL优点多多、好处多多,不得不承认啊。

  

  按这个理念,管理系统未必就是有什么什么数据库,不是非要建立那些表,也可以从

  以后的系统里读取,对已有的系统进行集成就可以了。

  

   

  

  搞技术的人不能没有自己的信念、自己的追求,但是不能拒绝提高,对的有道理的应该积极接纳。

  提高是点点滴滴积累的,不可能一步到位的,每天一点点进步,每年会有明显的进步。

本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/archive/2010/12/26/1917189.html,如需转载请自行联系原作者

你可能感兴趣的文章
General PLSQL 查看数据表中文乱码????
查看>>
Varnish 管理及配置详解
查看>>
我的友情链接
查看>>
【python学习】装饰器@
查看>>
Windows 10部署与管理指南(1)之环境准备篇
查看>>
iptables
查看>>
Delphi 2007 的重构功能
查看>>
多线程编程(16) - 多线程同步之 WaitableTimer (等待定时器对象)[续二]
查看>>
开发服务器安全加固
查看>>
ubuntu mongodb安装
查看>>
javascript如何设置名字输入不合法
查看>>
我的友情链接
查看>>
Docker数据持久化与容器迁移
查看>>
Collection与Map
查看>>
Maven入门指南12:将项目发布到私服
查看>>
解决/usr/bin/ld: cannot find -lxxx 问题
查看>>
Linux面试题
查看>>
java 内存设置
查看>>
功能表单之智能选择字段类型的使用——JEPLUS软件快速开发平台
查看>>
ios 8 适配须知
查看>>