Referencing a view? - Mailing list pgsql-sql

From James Orr
Subject Referencing a view?
Date
Msg-id 001f01c10b10$ce8528a0$1600000a@lrg.office
Whole thread Raw
Responses Re: Referencing a view?
Re: Referencing a view?
List pgsql-sql
Hi,
 
Is there anyway that you can reference a column in a view for referential integrity?  The problem is with the unique thing, obviously I can't create a unique index on a view.  Here is what I have:

CREATE SEQUENCE "addresses_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1  cache 1 ;
 
CREATE TABLE "org_addresses" (
 "id" integer DEFAULT nextval('addresses_id_seq'::text) NOT NULL,
 "orgid" integer references orgs on delete cascade,
 "name" character varying(255),
 "street1" character varying(255),
 "street2" character varying(100),
 "city" character varying(100),
 "state" character(2),
 "zip" character(10),
 Constraint "org_addresses_pkey" Primary Key ("id")
);
 
CREATE TABLE "user_addresses" (
 "id" integer DEFAULT nextval('addresses_id_seq'::text) NOT NULL,
 "userid" integer references users on delete cascade,
 "name" character varying(255),
 "street1" character varying(255),
 "street2" character varying(100),
 "city" character varying(100),
 "state" character(2),
 "zip" character(10),
 Constraint "user_addresses_pkey" Primary Key ("id")
);
 
CREATE VIEW "addresses" as SELECT user_addresses.id, user_addresses.userid, user_addresses.name, user_addresses.street1, user_addresses.street2, user_addresses.city, user_addresses.state, user_addresses.zip FROM user_addresses UNION SELECT org_addresses.id, NULL::unknown, org_addresses.name, org_addresses.street1, org_addresses.street2, org_addresses.city, org_addresses.state, org_addresses.zip FROM org_addresses;
So this gives me a view with every address, each with a unique id as I used the same sequence in both tables.  Now what I want to do is something like this :
 
CREATE TABLE orders (
    id serial primary key,
    shipping_address int references addresses(id),
.
.
);
 
Which of course doesn't work because addresses as a view can't have a unique index.  Any way around this?
 
- James

pgsql-sql by date:

Previous
From: "Josh Berkus"
Date:
Subject: Re: Functions performed on intervals
Next
From: Stephan Szabo
Date:
Subject: Re: Referencing a view?