• 基于视图的增删改查操作(颠覆传统思维吧)


             视图是关系型数据库提供的一个非常强大好用的功能,它提供了一种基于基本表(相对视图的虚拟表而言)的数据提取重组和分隔技术。

             视图通过对一个或者多个基本表进行数据提取和重新组织,将数据以用户希望的方式重新呈现。

             需要注意的是,视图的主要目的就是重新组织多个基础表的数据以新的方式展现,重点是数据展示,并不涉及到增删改的功能。(另一个主要功能是数据隔离)

              对于现有市场上不同的数据库来说,对于视图的增删改都不支持,或者说支持的很不好,有很多约束条件。

             有人说过,产品功能是有限的,用户需求是无限的,真理。我遇见了有无限需求的客户。

             先说一下用户大体需求:

         我们的产品是一个智能开发平台,客户使用可视化的方式可以定义表单和流程,使用零编码的方式就可以快速开发出一套信息化管理系统。这种方式一直运行的很好,直到有一天。

         客户:我们有一个系统是c/s结构的,想改成b/s结构,用你们的平台能做吗?

         我: 可以啊,非常快。

         客户:我看了你们的视频介绍,基本都是一个表单一个数据表对应的,但是我们的系统有时候一个表单要对应好几个数据表,这个怎么办呀?

         我:用视图功能来定义表单就可以。

         客户:我试了,视图功能只能查看,不能新增和修改啊

         。。。。。(确实如此)     

      其实,在产品的研发和使用中,一直都不断有客户提出过这样的需求,为此也丢失了不少客户,痛定思痛,不能再痛。于是,一个新的视图操作概念诞生了

    基于视图的增删改查操作

    • 前言:

        本文中所有操作都采用图形界面的方式完成,并不涉及到任何程序编写。所以,即使您不懂程序,也没有关系。

    • 基本概念    

      • 视图:不用多做解释,知道的都清楚,不知道的查书。
      • 基础表:本文的基础表和大家理解的基础表有一点区别。大家理解的或者书本上介绍的基础表指的是实际的物理数据表,本文的基础表指的是视图所依赖的实际物理表或者视图。(有点绕,因为视图可以再次通过“视图”的功能进行数据重组)。所以本文中只要视图引用的表或者视图,都叫基础表
      • 物理表:数据库中真实的表
    • 场景

        基于视图的增删改操作,他不是提供一个接口工具,让您输入sql语句来完成,而是提供一个图形界面,通过 视图定义来自定生成操作界面,在操作界面进行新增、修改、删除和查询功能。在用户对视图进行增删改查操作时,后台运行的是视图分析引擎,所有的视图操作都交给视图引擎来完成。

    • 实现原理

      原理并不复杂,一句话,所有对视图的增删改查操作,都通过视图引擎和表单引擎转化到视图对应的基础表的操作(如果基础表本身也是视图,那么就递归进行转化,直到找到最后的物理表)。

        所有真理都是简单明了的,但要证明他,确实非常复杂的一件事情。视图引擎和表单引擎就是如此。特别是当视图对应的基础表之间有外键关系时,要维护外键关系(同时添加,补充增加等)需要很多细心地判断。

    • 图形界面

        1、视图定义

         这里提供了一个向导式的视图构建,如果您熟悉sql语句,直接写视图的sql也可以。

          第一步:选择基础表

          

          第二步:选择需要的字段

          

          第三步:设置表之间的关系:系统其实已经帮您做好了所选基础表的表之间的关联关系,您可以再次修改

          

        2、生成视图界面(设计图)

          视图sql语句构建好后,就可以生成视图了,系统会做两部分工作。

          一个是根据输入的视图sql语句,在数据库中生成真实的视图。

          另一个是生成针对这个视图进行的增删改查的界面。

          下面是自动生成的设计界面(编辑界面)

          

          3、视图界面调整

            您可以在系统自动生成的设计界面上进行调整为更好看的界面,这里就不做调整了,直接使用系统生成的格式。

            自动生成界面后,就可以在视图的编辑页面进行操作了

            4、列表

            这是自动生成的视图的列表界面,可以通过这个界面进行视图数据的增删改查、导出、统计等。

            

          5、新增记录

            

            这里需要说明一点,我们创建的视图是从两个基础表获取数据的,一个是用户表的登录名和姓名,另一个部门表的部门名称。所以新增数据的时候,要从当前界面取值,然后分别新增到对应的部门表和用户表,同时还是设置这两条数据之间的关联关系(“用户属于哪个部门”这个关系)

          6、修改记录

            修改界面和新增界面是相同的,修改的时候,也是要把用户修改的数据更新到对应的物理表中

           7、删除记录

            这里需要注意的是:删除的时候,只删除这个视图的主表(在本文的演示案例中,用户表就是这个视图的主表)对应的数据,而不能删除部门表的数据。在其他案例中,如果构成视图的基础表之间没有关联关系(主外键),那么就同时删除所有的基础物理表的数据。

    • 技术细节(待续)

  • 相关阅读:
    北斗授时系统,GPS授时服务器—在行业应用及介绍
    GPS时间同步服务器,NTP时间同步服务器,——数据采集系统应用
    北斗卫星时钟(北斗授时服务器)厂家介绍及价格分析
    linux系统下ntp网络时钟服务器(NTP服务器)的搭建和使用
    2020年SAP项目艰辛曲折的开工历程 III
    2020年SAP项目艰辛曲折的开工历程 II
    2020年SAP项目艰辛曲折的开工历程 I
    2020年肺炎疫情期间看的几部古装电视剧
    做人不忘本,才能走得更远 --- 我看电视剧《雍正王朝》
    邬先生及时功成身退,是明哲保身的聪明做法 --- 我看电视剧《雍正王朝》
  • 原文地址:https://www.cnblogs.com/chegan/p/4566777.html
Copyright © 2020-2023  润新知