Постгрес действуен несколько не последовательно на мой взгляд при работе наследования.
Есть Таблица1, у которой есть подчиненная Таблица11 и есть Таблица2 внешний ключ которой ссылается на Таблицу1.
Есть запись в Таблице11, которая появляется и в Таблице1, НО при попытке связать с ней запись из Таблицы2, возникает нарушение целостности, поскольку якобы в Таблице1 эта запись отсутствует.
По-моему это не логично.
А помоему очень
А помоему очень даже логично.
Да таблица-потомок наследует ЗАПИСИ родительской таблицы, но никак не ключи, хотя бы потому, что сама может содержать свои собственные записи, которые могут вступать в противоречие с ключами родительской таблицы. Поэтому если у вас в Таблице2 есть внешний ключ на Таблицу1, то соответственно он и будет работать ТОЛЬКО для Таблицы1, а не для таблиц-потомков Таблицы1!
Да, тут есть о
Да, тут есть о чем поспорить.
Действительно существующий способ наследования вынуждает делать так, но мне кажется, что для построения ИС целесообразнее иметь возможность связываться с главной таблицей.
Опять же пример с магазином - если есть много типов товаров в наследованных таблицах и одна главная таблица "Товар", то во всякой бухгалтерской документации, например, логичнее ссылаться именно на обезличенный товар из главной таблицы... иначе зачем вообще это наследование нужно?
Так ссылайтесь
Так ссылайтесь кто мешает? Делайте ключ в главной таблице и ссылайтесь по этому ключу, а не по ключу в таблице-потомке.
Я все-таки
Я все-таки почитал мануал и нашел в "5.8. Inheritance" пояснения по этому поводу и обещания исправить в следующих версиях.