什么时候应该在实际的表上实际使用视图?我希望这能带来什么好处?

总的来说,使用视图而不是表格有什么好处?我不是应该按照视图最初的样子设计桌子吗?

推荐答案

哦,你需要考虑很多不同之处.

Views for selection:

  1. 视图提供了对表的抽象.您可以在视图中轻松添加/删除字段,而无需修改基础架构
  2. 视图可以轻松地为复杂连接建模.
  3. 视图可以对您隐藏特定于数据库的内容.例如,如果您需要使用Oracles SYS_上下文功能或其他许多功能进行一些判断
  4. 您可以轻松地直接在视图而不是实际的表上管理授权.如果您知道某个用户只能访问某个视图,那么管理起来就更容易了.
  5. 视图可以帮助您实现向后兼容性.您可以更改基础架构,但视图可以对特定客户机隐藏这些事实.

Views for insertion/updates:

  1. 通过直接在视图中使用Oracle的"with CHECK OPTION"子句等功能,可以处理视图的安全问题

Drawbacks

  1. 丢失有关关系的信息(主键、外键)
  2. 您是否能够插入/更新视图并不明显,因为该视图对您隐藏了其基础连接

Sql相关问答推荐

在数据分区内执行确定

如何在case语句中使用条件来计算成对变量

SQL更新,在2个额外的表上使用内部连接

SQL是否可以计算每年的所有日期变化?

在postgres中动态计算出现次数并插入到json中

我可以将INSERT语句与SELECT一起使用来创建条件吗?

在Postgres中实现合并功能的干净方法,因为当目标/源不匹配时

LEFT JOIN不显示计数0我期望的方式

仅 for each 唯一ID返回一个元素,并仅返回最新连接的记录

PostgreSQL基于2个COLS的任意组合 Select 唯一行

PostgreSQL使用SQL子查询在时间间隔内 Select 数据

从数据库中查找总和大于或等于查询中的数字的数字

从单个表达式中的分隔字符串中取平均值

使用 union 的有序结果获取行数

SQL 查找 varchar 类型列及其值中多次出现的子字符串

如何将 START 和 END 日期之间的日期差异作为 SQL 中的单独列获取

SQL for Smarties 类型问题:从表中 Select 记录,并对某些值进行分组

JSON对象查询SQL服务器

如何在 SQL Server 中将 -13422.8450 舍入到 -13422.84

将单行中的多个行值转换为列