Re: Inherited FK Indexing

Поиск
Список
Период
Сортировка
От Scott Marlowe
Тема Re: Inherited FK Indexing
Дата
Msg-id dcc563d10709140920p4256aaepcae5792a3428f81b@mail.gmail.com
обсуждение исходный текст
Ответ на Inherited FK Indexing  (Ketema Harris <ketema@ketema.net>)
Список pgsql-general
On 9/14/07, Ketema Harris <ketema@ketema.net> wrote:
> I have the following table set up:
>
> CREATE TABLE states
> (
>    state_id integer NOT NULL DEFAULT nextval
> ('state_province_id_seq'::regclass),
>    state character(2),
>    full_name character varying,
>    timezone character varying,
>    CONSTRAINT "PK_state_id" PRIMARY KEY (state_id)
> )
>
> CREATE TABLE canadian_provinces
> (
> -- Inherited:   state_id integer NOT NULL DEFAULT nextval
> ('state_province_id_seq'::regclass),
> -- Inherited:   state character(2),
> -- Inherited:   full_name character varying,
> -- Inherited:   timezone character varying,
>    CONSTRAINT "PK_province_id" PRIMARY KEY (state_id)
> )
>
> as expected I can do select * from states and get everything out of
> the child table as well.  What I can't do is create a FK to the
> states table and have it look in the child table as well.  Is this on
> purpose?

Not so much on purpose as an artifact of the design process.
PostgreSQL can't span multiple tables with indexes, a unique one of
which is required for a FK to point to a field.

>  Is it possible to have  FK that spans into child tables?

Not really.  You might be able to write your own function that
approximates such behavior.  I would think some kind of intermediate
table with every value from all the children for that one column could
be used, but performance would suffer.

В списке pgsql-general по дате отправления:

Предыдущее
От: Panagiotis Pediaditis
Дата:
Сообщение: Re: Locking entire database
Следующее
От: "Scott Marlowe"
Дата:
Сообщение: Re: Locking entire database