2011-09-16 44 views

回答

11

它简化了调用并提供了一个间接层。

所以,如果你有一个复杂的选择与大量的联接,你可以在视图中实现它,只需调用视图,而无需考虑所有这些联接。然后,您可以重新使用此视图。

此外,如果您以这种方式使用视图而不是表格,将来如果您需要迁移列,则可以轻松地进行此操作,并且只需要对视图进行更改。

2

除了Oded提到的明显好处之外,您还可以使用materialized views大幅度提高速度。来自wikipedia:

在关系模型之后的数据库管理系统中,视图是表示数据库查询结果的虚拟表。无论何时查询或更新普通视图的表,DBMS都会将这些转换为针对基础表的查询或更新。物化视图采用不同的方法,将查询结果缓存为可能会从原始基表随时更新的具体表。

1

有几种,但我认为主要的好处是视图是逻辑数据独立性的SQL实现。

构建一个可更新的视图,并且使用该视图的应用程序相对于基础表中的更改是相对免疫的。更改基础表的结构,更新视图定义,并且所有应用程序都像没有任何事情一样工作。 (在旧版数据库,可能有数以百计的书面几十种语言的应用程序。这是胜利。)

其他好处(意译克里斯日期)

“自动”安全隐患的数据。限制对视图的访问,并且对谁看到什么有精细的控制。

应用程序的“DRY”功能。视图可以为复杂的SELECT语句提供一个简单的公共接口,因此应用程序只需SELECT column-list FROM my-easy-view即可。

不同的用户可以用不同的方式看到相同的数据。

相关问题