25 февраля 2011 г. 15:03 пользователь Dmitriy Igrishin
Пример является надуманным. Даже имена выбраны так, что понять
их предназначение невозможно.
На практике же, когда анализ предметной области выявляет концепции
проекта, следующим шагом после установления связей между ними,
является определение операций над этими концепциями. И если две
концепции связаны наследованием, то последнее не очень полезно
без полиморфизма.
Так вот определить полиморфные операции непосредственно в
PostgreSQL (в том же PL/pgSQL) невозможно. Возможно только
прилагая большую сообразительность и мастерство.
Что касается понятия наследования, реализованного в
PostgreSQL (INHERITANCE clause). Принимая в расчёт ограничения,
указанные в п. 5.8.1, я вообще не понимаю зачем этот функционал был
добавлен в PostgreSQL? Разве что только для выборки из всех таблиц,
олицетворяющих производные классы, через таблицу, представляющую
базовый класс (как в примере выше)? :-)