VB.net版机房收费系统——存储过程和视图的本质挖掘

简介

存储过程

  存储过程是存放在服务器上的预先编译好的sql语句,在服务器端运行,可以视为用户为了完成某个特定的功能而编写的一个功能模块,用户或其他用户可以在自己其他的存储过程中引用该存储过程,从而实现了代码的重用性,加快应用的开发速度、提高开发的质量和效率。

  自考数据库原理的时候,里边涉及到了存储过程的知识,那时对它的理解就是“牵一发而动全身”,颇有种“一劳永逸”之感。机房重构中用到了存储过程,将自己原本抽象的理解又给具体化了~

视图

  视图是一个虚拟表,其内容查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库一个或多个表,或者其它视图。

  视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。

对比

  对于数据库学习,我们最初的认识只有四个字:增删改查,于存储过程和视图而言,二者将这四个功能进行了划分,存储过程负责“增删改”,视图负责“查”

  某些功能的实现,需要用到视图,比如上机操作,我的上机思路是这样的:

  (1)判断卡号是否存在;

  (2)若是存在,是否处于使用状态(PS:由于数据库设计得不太合理,将一些信息都放在了注册表里边)

  (3)卡号是否正在上机;

  (4)卡号余额是否满足最低余额标准

  (5)进行以上操作后,将上机记录更新到T_LineRecord_Info表

  T_Card_Info表内容如下:


  视图设计如下:


  视图编辑后显示内容


  用视图的时候,有一种这样的体会:视图的本质也许是一种组合查询,用视图的原因就是不同功能对数据的要求是不一样的,若是针对每一个功能去建立数据表的话,会产生数据库设计上的冗余,故视图存在的目的就是一次性将用到的零件备齐,让这个虚拟表来适应不同的需求,在使用的时候根据去组合零件。

总结

  对比学习很高效,存在即是合理,用质疑的眼光其看待知识存在的意义和优势,就能看到本质。

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...