Re: Another constant in foreign key problem.

From: Gary Stainburn <gary(dot)stainburn(at)ringways(dot)co(dot)uk>
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: Another constant in foreign key problem.
Date: 2012-02-22 12:19:09
Message-ID: 201202221219.09214.gary.stainburn@ringways.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Thank you to you both. I was thinking that I wasn't going to be able to do
this.

As the use of these tables is purely to control the web interface to this
database I have decided control this via the application rather than within
the database. It will require less coding and is simpler.

On Wednesday 22 February 2012 12:04:41 Philip Couling wrote:
> Hi Gary
>
> In short you can't have a foreign key here because foreign keys are just
> that: a *key* from another table. fl_level is not a key, it is not
> unique and requires fl_f_id to be unique.
>
> If you want a foreign key between these two tables then you must add the
> facility id to the document library and use a composite key (fl_f_id ,
> fl_level) as the foreign key. This may be advantageous as the same
> structure could be re-used across other facilities (even though it would
> not be applicable to all).
>
>
>
> There are a couple of alternatives to this. One is to add a separate
> column to facility_levels. The sole purpose of this column would be to
> proved a unique key on every row in the table. Foreign keys (such as on
> library_document_user_level) would reference this and not fl_level.
> There would be no constraint here to prevent a row in
> library_document_user_level from referencing the wrong facility.
>
>
> Another possible alternative which is very PostgreSQL specific is to use
> inheritance. Create a child table storing only facility_levels for
> fl_f_id 22. The foreign key would reference the child table and not
> facility_levels. Everything in the child table would also exist in
> facility_levels. As this is so specific to PostgreSQL and is not hugely
> common as a technique, read this as a *possible* solution not a
> recommended one.
>
> Hope this helps
>
--
Gary Stainburn
Group I.T. Manager
Ringways Garages
http://www.ringways.co.uk

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Ron Peterson 2012-02-22 13:52:39 Re: on insert rule with default value
Previous Message Philip Couling 2012-02-22 12:04:41 Re: Another constant in foreign key problem.