【发布时间】:2011-07-29 12:04:17
【问题描述】:
明确地说,modifiable join view 我的意思是一个由两个或多个表连接构成的视图,它允许插入/更新/删除操作来修改任何/所有组件表。
这可能是 postgres 特定的问题,不确定。如果其他 DBMS 具有可修改的连接视图的特殊功能,我也很感兴趣,因为据我所知,它们在标准 SQL 中是不可能的。
我正在研究 postgres 架构,我最近的一些阅读表明可以使用替代规则 (CREATE RULE ... DO INSTEAD ...) 构建可修改的连接视图。可修改的连接视图似乎是可取的,因为它允许在接口后面隐藏强大的规范化,为经典抽象提供一种机制。规则是实施的唯一选择,因为目前triggers cannot be set on views。
然而,我尝试设计的第一个可修改视图遇到了问题,我发现许多人认为非平凡的规则是有害的(请参阅 cmets 中指向 this SO answer 的链接)。另外,我在网络上找不到任何可修改加入视图的示例。
问题(编辑以在问题上加分):
- 您对可修改的联接视图有任何经验吗?您能否提供一个具有选择/插入/删除/更新能力的具体示例?
- 它们是否实用,即它们是否可以被透明地处理,而不必在地雷/黑洞周围踮着脚尖?
- 就功能/工作量比和可维护性而言,它们是否是一个好的设计选择?
非常感谢有关此主题的任何示例/讨论的链接。谢谢。
【问题讨论】:
标签: sql postgresql rules