Re: Proposed feature: Selective Foreign Keys

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: Proposed feature: Selective Foreign Keys
Дата
Msg-id 529F63EC.4030001@dunslane.net
обсуждение исходный текст
Ответ на Re: Proposed feature: Selective Foreign Keys  (Robert Haas <robertmhaas@gmail.com>)
Ответы Re: Proposed feature: Selective Foreign Keys
Re: Proposed feature: Selective Foreign Keys
Re: Proposed feature: Selective Foreign Keys
Список pgsql-hackers
On 12/04/2013 12:00 PM, Robert Haas wrote:
> On Wed, Dec 4, 2013 at 11:44 AM, Andrew Dunstan <andrew@dunslane.net> wrote:
>>> Oh.  I misinterpreted what this feature was about, then.  I thought it
>>> was about restricting the reference to a subset of the *referenced*
>>> table, but it seems to be about restricting the constraint to a subset
>>> of the *referencing* table.  I guess they're both useful, but the
>>> syntax...
>>>
>>> REFERENCES tab(col) WHERE (stuff)
>>>
>>> ...sure looks like the WHERE clause is syntactically associated with
>>> the table being referenced.  What would we do if we eventually wanted
>>> to support both variants?
>>>
>> Well I guess we could say something like:
>>
>>     FOREIGN KEY (a-col) WHERE (a-condition) REFERENCES b(b-col) WHERE
>>     (b-condition)
>>
>> But it's somewhat ugly.
>>
>> The case of restricting the allowed referent rows does look slightly like a
>> solution in search of a problem, but maybe that's just because I haven't
>> thought of a use for it yet.
> Interestingly, the variant for which you can't think of a use case is
> the one I've missed most.  Typical examples in my experience are
> things like project.project_manager_id references person (id) where
> person.is_project_manager, or alert (device_id) references device (id)
> where not device.deleted.
>

OK, those make sense. I wonder whether this should be done via a USING 
clause on the constraint that pointed to the partial unique index. Or 
would that be too obscure?

cheers

andrew




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

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: Time-Delayed Standbys
Следующее
От: Magnus Hagander
Дата:
Сообщение: Re: pgsql: Fix a couple of bugs in MultiXactId freezing