| From: | Manfred Koizar <mkoi-pg(at)aon(dot)at> |
|---|---|
| To: | Tom <tom(at)vms7(dot)com> |
| Cc: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: Having an optional foreign key (ie. sometimes NULL) ? |
| Date: | 2003-03-13 23:36:15 |
| Message-ID: | o4527vgc2tl60snr5hbuv75hdob58n99n4@4ax.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On Thu, 13 Mar 2003 22:58:14 +0000, Tom <tom(at)vms7(dot)com> wrote:
>"some products will only be available to a single
>client whereas other products will be available to all clients".
>
> I thought the best way to get around this would be to have the client as a
>foreign key in products but for products available to all clients this won't
>work.
It will work, if you let NULL represent "available to all clients":
CREATE TABLE client (id INT PRIMARY KEY, name TEXT);
INSERT INTO client VALUES (1, 'Joe''s Insurance Company');
INSERT INTO client VALUES (2, 'Second Client');
CREATE TABLE product (id INT, name TEXT, cid INT REFERENCES client);
INSERT INTO product VALUES (11, 'for Joe', 1);
INSERT INTO product VALUES (22, 'for all', NULL);
It's perfectly legal to have a nullable foreign key column.
Servus
Manfred
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Ryan Mahoney | 2003-03-13 23:55:42 | Re: Having an optional foreign key (ie. sometimes NULL) ? |
| Previous Message | Jean-Luc Lachance | 2003-03-13 23:33:29 | Re: Function in selection? |