【问题标题】:Why is database view used?为什么使用数据库视图?
【发布时间】:2011-01-28 02:06:24
【问题描述】:

是在数据库设计正确的方法中使用“视图”还是我们应该在代码端处理它?有什么优点或缺点?

【问题讨论】:

标签: database-design view database-schema advantage-database-server


【解决方案1】:

我看到了使用视图的几个原因:

  • 提供更简单的界面:只查询视图,而不是十几个表,进行连接和所有操作
  • 提供一个不改变(或不经常改变)的界面
    • 即使您更改了表的结构,您也可以修改您的视图,使其仍然返回相同的内容
    • 这意味着您的应用程序代码无需更改:它仍然可以工作,因为它使用的是视图,而不是直接访问表
  • 只提供表的某些字段的接口
    • 用户无需查看一些他们不会使用的数据
    • 或者访问一些他们不应该使用的数据
  • 使用某些数据库引擎(我认为 MS SQL Server 支持),某些类型的视图可以有索引
    • 这对性能有好处:如果您有一些复杂的查询,请将其存储为视图,并在该视图上定义所需的索引

【讨论】:

  • 查询性能如何?查看可以提高我的查询的性能吗?
【解决方案2】:

在我们的案例中,视图的两个典型场景是:

  • 表中的某些列包含机密数据,只有少数人可以看到。您可以创建一个排除这些列的视图,并将该视图用于大多数用户。
  • 您将两个或多个表连接到一个非规范化视图中,该视图可用于报告目的,但作为用于存储在数据库中的表没有意义。

希望这会有所帮助。

【讨论】:

    【解决方案3】:

    视情况而定。我有时会使用它们,但不是那么频繁。但是,它们对于显示数据的解码视图以供最终用户(工具)使用非常有用,例如报告应用程序。通过这种方式,您可以向最终用户提供隐藏了一些技术细节的常用信息的简化版本。

    【讨论】:

      【解决方案4】:

      某些数据库系统不支持在 FROM 子句中嵌入 SELECT 语句。如果您使用的系统不支持此功能,您通常可以将内部 SELECT 语句保存为视图,并使用视图名称代替 select 语句。

      因此它提供了某些数据库实现中可能缺少的行为。

      【讨论】:

        猜你喜欢
        • 2010-11-19
        • 1970-01-01
        • 1970-01-01
        • 2012-02-18
        • 2011-06-09
        • 2011-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多