Являются ли изменяемые представления соединения разумным выбором дизайна?

Для ясности, под изменяемым соединением представлением я имею в виду представление, построенное из объединения двух или более таблиц, которое позволяет вставлять / обновлять / удалять действия которые изменяют любую / все таблицы компонентов.

Это может быть специфический вопрос postgres, не уверен. Мне также интересно, имеют ли другие СУБД особые особенности для изменяемых представлений соединений, поскольку, насколько я могу судить, они невозможны в стандартном SQL.

Я работаю над схемой postgres, и некоторые из моих недавних чтений содержат предположил, что можно создавать модифицируемые представления соединения, используя вместо этого правила ( СОЗДАТЬ ПРАВИЛО ... ДОБАВИТЬ ВМЕСТО ... ). Изменяемые представления соединения кажутся желательными, поскольку они позволяют скрыть сильную нормализацию за интерфейсом, обеспечивая механизм классической абстракции. Правила - единственный вариант для реализации, поскольку в настоящее время триггеры не могут быть установлены в представлениях .

Однако первое изменяемое представление, которое я пытался спроектировать, столкнулось с проблемами, и я обнаружил, что многие считают нетривиальные правила вредными (см. ссылки в комментариях к , этот ответ SO ). Кроме того, я не могу найти никаких примеров изменяемых представлений соединения в Интернете.

Вопросы (отредактируйте, чтобы указать более тонкие моменты на вопросы):

  • Есть ли у вас опыт работы с изменяемыми представлениями соединения и можете ли вы предоставить конкретное пример с возможностью выбора / вставки / удаления / обновления?
  • Практичны ли они, т.е. можно ли с ними обращаться прозрачно, не ходя на цыпочках вокруг шахт / черных дыр?
  • Являются ли они когда-либо хорошим выбором дизайна с точки зрения соотношения функциональных возможностей и трудозатрат и удобства обслуживания?

Буду признателен за ссылки на любые примеры / обсуждения по этой теме. Спасибо.

6
задан Community 23 May 2017 в 09:58
поделиться