Re: FOREIGN KEY questions - Mailing list pgsql-general

From Karl F. Larsen
Subject Re: FOREIGN KEY questions
Date
Msg-id Pine.LNX.4.10.10009100607450.724-100000@cannac.ampr.org
Whole thread Raw
In response to FOREIGN KEY questions  (Neil Conway <nconway@klamath.dyndns.org>)
List pgsql-general
That is not a sin to have never used foreign keys, but I think you are
mixing apples and oranges. It sounds to me you have 2 questions. One is
how do I put data into tables and the other is how can I, using SQL
display a new table from colums you filled.

    The first question is answered I think. Sounds like you are
entering data properly, but you might want to record a key column with
every entry. This may not be possible if the data is being keyed on a web
page.

    Since your filling more than one table there must be a key column
in every table. Then an SQL "select from and" calls will work. Of course
if you can record date and time, that is a classic key. Tricky to use as I
discovered.

On Sun, 10 Sep 2000, Neil Conway wrote:

> I'm having a bit of difficulty understanding the correct usage of
> foreign keys (I've never used them before, excuse my ignorance).
> Here's a situation where I'm trying to figure out how/if they
> should be used:
>
> One database has a group of tables with intereferential data.
> For example:
>
> CREATE TABLE messages (
>     /* ... */
>     poster  INT4 NOT NULL,
>     thread  INT4 NOT NULL
> );
>
> CREATE TABLE users (
>     id      serial
>     /* ... */
> );
>
> CREATE TABLE threads (
>     id      serial
>     /* ... */
> );
>
> messages.poster should refer to a valid (and unique) users.id - that
> is the person who posted the message. If there is no users.id with
> the same value as every messages.poster , there is a problem. The
> same applies to message.thread and threads.id .
>
> How do I check that this data is being entered correctly? Is this
> a situation where I should be using foreign keys? Or can this only
> be done with external logic (i.e. the application doing the inserts
> should check first that the data it's receiving is valid).
>
> Thanks in advance,
>
> Neil
>
> --
> Neil Conway <neilconway@home.com>
> Get my GnuPG key from: http://klamath.dyndns.org/mykey.asc
> Encrypted mail welcomed
>
> We hang the petty thieves and appoint the great ones to public office.
>         -- Aesop
>

Yours Truly,

       - Karl F. Larsen, k5di@arrl.net  (505) 524-3303  -


pgsql-general by date:

Previous
From: Patrick Welche
Date:
Subject: Re: FOREIGN KEY questions
Next
From: lee johnson
Date:
Subject: Re: [Fwd: Re: postgres not allowing new database?]