首页 > 编程知识 正文

机房重构视讲解,机房重构视解

时间:2023-05-06 20:46:26 阅读:245853 作者:4840

       上次总结的泛型中举得小例子用到了视图,视图的应用可以大大的降低我们的代码量,提高我们的工作效率。当我们的数据库设计满足第三范式,甚至满足更高范式的时候,那么必然会有很多表,当我们需要好几个表出现在一起的时候,视图帮你轻松解决,下边就总结一下吧~


视图定义

        计算机数据库中的视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。


作用

简单性:所见即所得。说的通俗一点,我们需要的信息可能分布到很多个表中,而每一个表中,我们只需要部分字段,所以我们要把这些字段从表中抽出来,重新放到一个表中,这就是视图,我们需要什么信息就拿什么信息,不需要的或者没有权限访问的一概不要,所以看到的就是我们所要的字段。在查询中,会简化用户的操作,直接对视图进行查询,就会省去很多条件的编写 安全性:当用户查询的时候,我们可以通过视图来筛选出那些信息是用户可以访问的,哪些是没有权限访问的,他们这对部分信息进行操作,保证了信息的安全性 逻辑数据独立性:视图可以帮助用户屏蔽真实表结构带来的影响

优点

视点集中 简化操作 定制数据 合并分割数据 安全性 缺点 性能差,查询消耗的时间长难修改,后期难维护


实例(查询学生上机记录——视图制作)
        当初在建表的时候把学生信息从卡表分离出来了,所以就多出来了学生表,查询上机记录需要用到三个表:学生表、卡表和上机记录表
1.右击视图,点击新建视图



2.选出需要用到的表


3.选出所需字段



4.测试



5.在D层代码


Public Function inquireLineRecord(cardInfo As Entity.CardEntity) As List(Of Entity.LineRecordEntity) Implements IDAL.ILineRecordDAL.inquireLineRecord Dim cmdText As String Dim paras As SqlParameter() = {New SqlParameter("@cardno", cardInfo.CardNO)} cmdText = "select * from LineRecordview where cardNo=@cardno and consumeMoney<>''" '搜索正在上机的卡号 Dim dt As DataTable dt = sqlhelper.ExecDataTable(cmdText, CommandType.Text, paras) Dim myList As List(Of Entity.LineRecordEntity) If dt.Rows.Count > 0 Then '将dt转换为泛型集合 myList = DataToList.convertToList(Of Entity.LineRecordEntity)(dt) Return myList Else Return Nothing End If End Function

总结


       越来越觉得数据库是个强大的开发软件,用的越多越体会的出他的好,简单的一行语句就能快速的查找出来你需要的信息,幸福的金鱼总说好的软件拿过来,傻瓜都会用,我觉得SQL Sever就是这样一种软件。

       原来学习数据库,总有不理解的地方,都是中文,都认得那些字,但是读完了没有感觉,读很多遍才会有一点点体会,这次重构加上之前的考试维护,让我有机会好好的研究一下数据库的应用,再返回到书本上的时候,原来不理解的知识,就在应用的过程中全部明白了,就像是功夫大师突然打通一个经脉的感觉。当然啦,了解的越多就会知道需要了解的更多,这就是学习的过程吧:路漫漫其修远兮,吾将上下而求索


版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。