开发者社区> 问答> 正文

视图的使用场景有哪些?

视图的使用场景有哪些?

展开
收起
请回答1024 2020-03-31 11:06:02 5394 0
2 条回答
写回答
取消 提交回答
  • Java程序员

    用途: 视图根本用途在我看来就一个:简化sql查询,提高开发效率。如果说还有另外一个用途那就是兼容老的表结构。

    使用场景: 1)计算列的需要,数据库设计范式要求我们减少冗余字段,因此现在很多数据表都没有计算列字段,如采购单:有价格、数量、税率、含税金额,多半没有不含税金额、税额,而这些字段在很多报表中有都会用到,所以我们可以创建一个含有计算列字段的视图来解决这个问题。

    2)不同表字段聚合,信息重组,如:经销商通常有业务员,业务员通常有上下级关系(客户经理、区域经理、大区经理等),因此查看经销商业务员时我们需要看到直管业务员是谁?该业务员对应的区域经理、大区经理是谁(可能NULL)?因此我们可以联合经销商表、业务员信息表、业务员上下级关系表定义一个经销商视图。

    3)安全性需要,主要是早期遗留系统集成需要,如:需要xx系统数据,又没接口,怎么办?直接操作数据库,这时就涉及数据安全性,合理利用视图则可以减少很多授权工作和保证数据安全性。当下新构建的系统几乎都是暴露api接口,因此数据安全性更多关注在接口的身份认证和数据粒度方面。

    4)兼容老的数据表,曾经碰到过这么个问题。 公司自主研发的进销存管理系统,一开始自用的,后来合作伙伴企业也要用,所以打算Saas化,当初做了一个最大的变动就是几乎所有表增加了一个使用单位(co_id)字段。悲催的是另外一个外购系统用到了采购单表,该系统已经停止维护、又继续在用。于是就创建了一个co_id=自有公司的视图,命名为原采购单表,而原采购单表改成新表名。这样一来外购系统可以继续使用,而且数据也没问题。

    2020-03-31 13:10:06
    赞同 展开评论 打赏
  • 视图根本用途:简化sql查询,提高开发效率。如果说还有另外一个用途那就是兼容老的表结构。

    下面是视图的常见使用场景:

    重用SQL语句;

    简化复杂的SQL操作。在编写查询后,可以方便的重用它而不必知道它的基本查询细节;

    使用表的组成部分而不是整个表;

    保护数据。可以给用户授予表的特定部分的访问权限而不是整个表的访问权限;

    更改数据格式和表示。视图可返回与底层表的表示和格式不同的数据。

    2020-03-31 11:06:11
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
动态、高效,蚂蚁动态卡片的内核逻辑 立即下载
继承与功能组合 立即下载
“静态调用链路发现”应用场景分析及实践探索 立即下载