Para ser claros, por modificable join view Me refiero a una vista construida a partir de la unión de dos o más tablas que permite insertar/actualizar/eliminar acciones que modifican cualquiera/todas las tablas de componentes.¿Las vistas de unión modificables son una opción de diseño razonable?
Esto puede ser una pregunta específica de postgres, no estoy seguro. También me interesa si otros DBMS tienen características idiosincrásicas para vistas de unión modificables, ya que, por lo que puedo ver, no son posibles en SQL estándar.
Estoy trabajando en un esquema de Postgres, y algunas de mis lecturas recientes han sugerido que es posible construir vistas de unión modificables usando en su lugar reglas (CREATE RULE ... DO INSTEAD ...
). Las vistas de unión modificables parecen deseables, ya que permitirían esconder una fuerte normalización detrás de una interfaz, proporcionando un mecanismo para la abstracción clásica. Las reglas son la única opción para la implementación, ya que actualmente es triggers cannot be set on views.
Sin embargo, la primera vista modificable que traté de diseñar se encontró con problemas, y descubrí que muchos consideran que las reglas no triviales son perjudiciales (ver enlaces en los comentarios al this SO answer). Además, no puedo encontrar ningún ejemplo de vistas de unión modificables en la web.
Preguntas (Editar para poner puntos más finos de las preguntas):
- ¿Tiene alguna experiencia con modificable vistas unidas y pueden proporcionarle un ejemplo concreto con seleccionar/insertar/borrar capacidad/actualización?
- ¿Son prácticas, es decir, se pueden tratar de forma transparente sin tener que caminar de puntillas alrededor de minas/agujeros negros?
- ¿Alguna vez son una buena opción de diseño, en términos de relación de funcionalidad/esfuerzo y facilidad de mantenimiento?
Agradecería mucho los enlaces a cualquier ejemplos/discusiones sobre este tema. Gracias.
Blog de uno de los desarrolladores en vistas: http://petereisentraut.blogspot.com/2010/07/update-on-views.html –