Re: FOREIGN KEY questions

From: "Karl F(dot) Larsen" <k5di(at)zianet(dot)com>
To: Neil Conway <nconway(at)klamath(dot)dyndns(dot)org>
Cc: PostgreSQL General <pgsql-general(at)postgresql(dot)org>
Subject: Re: FOREIGN KEY questions
Date: 2000-09-10 12:19:54
Message-ID: Pine.LNX.4.10.10009100607450.724-100000@cannac.ampr.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(at)home(dot)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(at)arrl(dot)net (505) 524-3303 -

In response to

Browse pgsql-general by date

  From Date Subject
Next Message lee johnson 2000-09-10 16:28:10 Re: [Fwd: Re: postgres not allowing new database?]
Previous Message Patrick Welche 2000-09-10 11:46:43 Re: FOREIGN KEY questions