14

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

4

4 回答 4

20

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

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

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

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

希望这可以帮助。

于 2010-03-16T12:11:34.327 回答
3

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

于 2010-03-16T12:08:21.963 回答
1

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

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

于 2018-10-21T05:01:23.530 回答