view constraints在哪里有用?我的意思是,Oracle允许在视图上创建约束。它们不是由数据库强制执行的。它似乎只是数据库可以使用的更多元数据,但我试图了解它们在什么情况下有用。
Tom Kyte answered在一个问题中:
它们用于具有物化视图等的复杂查询重写。它更“元数据” - 它为优化器提供了更多信息,允许更广泛的查询重写 的地方。
......但这有点简短。
答案 0 :(得分:2)
查看约束
您可以在视图上创建约束。视图支持的唯一约束类型是RELY约束。
当查询通常访问视图而不是基表时,这种类型的约束很有用,因此数据库管理员需要定义视图而不是表之间的数据关系。视图约束在OLAP环境中特别有用,它们可以为物化视图启用更复杂的重写。
引用了另一个Oracle Documentation页面,但从未在视图上使用约束。
答案 1 :(得分:0)
在Oracle产品中少量使用。在Designer生成的PL / SQL Web应用程序中,基于视图的组件需要在视图上定义的主键。这允许应用程序从记录列表超链接到单记录显示。
我记得在Hibernate中看到一些案例,当在视图上定义了PK和FK约束时,它会生成更好的代码。 (其他人可以确认吗?)
汤姆指向查询重写。
所以我认为答案是“如果你的工具可以使用这些信息,那么最好提供它。”当然,很难弄清楚哪些工具会使用它。
我尝试将它们包括在内,因为