从痴迷数据库SQL语句逐渐走进面向对象化(系统的核心以处理对象为主、淡化数据库概念)

简介:
几年前写信息管理系统都要设计很多很多表,每个表都是自己建立的,然后喜欢用高
  性能、高超的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,如需转载请自行联系原作者

目录
相关文章
|
12天前
|
存储 安全 搜索推荐
酒店管理系统的数据库的应用以及选择
酒店管理系统数据库关乎运营效率和服务质量。数据库用于数据存储、管理、分析及客户关系管理,确保房态与预订精准。选择时重视性能稳定性、数据安全、易用性、可扩展性和成本效益。合适的数据库能提升酒店运营效率并优化客户体验。
21 2
|
12天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
76 6
|
1天前
|
SQL Oracle 关系型数据库
sql语句创建数据库
在创建数据库之前,请确保你有足够的权限,并且已经考虑了数据库的安全性和性能需求。此外,不同的DBMS可能有特定的最佳实践和配置要求,因此建议查阅相关DBMS的官方文档以获取更详细和准确的信息。
|
1天前
|
SQL 缓存 数据库
sql 数据库优化
SQL数据库优化是一个复杂且关键的过程,涉及多个层面的技术和策略。以下是一些主要的优化建议: 查询语句优化: 避免全表扫描:在查询时,尽量使用索引来减少全表扫描,提高查询速度。 使用合适的子查询方式:子查询可能降低查询效率,但可以通过优化子查询的结构或使用连接(JOIN)替代子查询来提高性能。 简化查询语句:避免不必要的复杂查询,尽量使SQL语句简单明了。 使用EXISTS替代IN:在查询数据是否存在时,使用EXISTS通常比IN更快。 索引优化: 建立合适的索引:对于经常查询的列,如主键和外键,应创建相应的索引。同时,考虑使用覆盖索引来进一步提高性能。 避免过多的索引:虽然索引可以提高查询
|
5天前
|
存储 Oracle 关系型数据库
Oracle的模式与模式对象:数据库的“城市规划师”
【4月更文挑战第19天】在Oracle数据库中,模式是用户对象的集合,相当于数据库的城市规划,包含表、视图、索引等模式对象。模式对象是数据存储结构,如表用于存储数据,视图提供不同查看角度,索引加速数据定位。良好的模式与模式对象设计关乎数据效率、安全和稳定性。规划时需考虑业务需求、性能、安全和可扩展性,以构建高效数据库环境,支持企业业务发展。
|
9天前
|
SQL 数据库
数据库SQL语言实战(二)
数据库SQL语言实战(二)
|
9天前
|
SQL 算法 数据库
数据库系统概念(第三周 第一二堂总结)
数据库系统概念(第三周 第一二堂总结)
|
9天前
|
SQL 关系型数据库 数据库
【后端面经】【数据库与MySQL】SQL优化:如何发现SQL中的问题?
【4月更文挑战第12天】数据库优化涉及硬件升级、操作系统调整、服务器/引擎优化和SQL优化。SQL优化目标是减少磁盘IO和内存/CPU消耗。`EXPLAIN`命令用于检查SQL执行计划,关注`type`、`possible_keys`、`key`、`rows`和`filtered`字段。设计索引时考虑外键、频繁出现在`where`、`order by`和关联查询中的列,以及区分度高的列。大数据表改结构需谨慎,可能需要停机、低峰期变更或新建表。面试中应准备SQL优化案例,如覆盖索引、优化`order by`、`count`和索引提示。优化分页查询时避免大偏移量,可利用上一批的最大ID进行限制。
33 3
|
12天前
|
SQL 监控 数据库
数据库管理与电脑监控软件:SQL代码优化与实践
本文探讨了如何优化数据库管理和使用电脑监控软件以提升效率。通过SQL代码优化,如使用索引和调整查询语句,能有效提高数据库性能。同时,合理设计数据库结构,如数据表划分和规范化,也能增强管理效率。此外,利用Python脚本自动化收集系统性能数据,并实时提交至网站,可实现对电脑监控的实时性和有效性。这些方法能提升信息系统稳定性和可靠性,满足用户需求。
42 0
|
12天前
|
存储 NoSQL 安全
物流系统数据库的应该以及选择
物流系统数据库在信息化建设中扮演关键角色,用于数据存储、管理和共享,支持决策,并优化资源配置。选择数据库时要考虑类型(如关系型或NoSQL)、性能稳定性、成本易用性、安全性和未来发展需求。完善数据管理与安全措施,确保数据准确性和系统扩展性,是提升物流效率和企业竞争力的关键。
16 3