Re: DB design and foreign keys - Mailing list pgsql-sql

From Gianluca Riccardi
Subject Re: DB design and foreign keys
Date
Msg-id 43A03555.6050007@moonwatcher.it
Whole thread Raw
In response to DB design and foreign keys  (Gianluca Riccardi <ml-reader@moonwatcher.it>)
List pgsql-sql
so, after the needed modifications the SQL schema is the following

-- SQL schema for business-test-db2

CREATE TABLE customers (  customer_code serial UNIQUE,  alfa_customer_code varchar(6),  customer_name character
varying(250)NOT NULL,  address character varying(250) NOT NULL,  city character varying(250) NOT NULL,  zip_code
charactervarying(8) NOT NULL,  prov character varying(30) NOT NULL,  security character varying(15) NOT NULL,  tel
charactervarying(30),  tel2 character varying(20) NOT NULL,  fax character varying(250),  url character varying(250),
email1character varying(250) NOT NULL,  email2 character varying(250) NOT NULL,  discount1 integer,  discount2 integer,
PRIMARY KEY (customer_code)
 
);

CREATE TABLE users  (  id smallint NOT NULL,  login varchar(20) NOT NULL,  pwd varchar(20) NOT NULL,  name varchar(20)
NOTNULL,  customer_code int REFERENCES customers (customer_code),  valid date,  primary key (id)
 
);

CREATE TABLE products   (  code varchar(60) UNIQUE NOT NULL,  description varchar(250) NOT NULL,  dimensions
varchar(250)NOT NULL,  price numeric NOT NULL,  state boolean,  PRIMARY KEY (code)
 
);

CREATE TABLE orders  (  order_code serial UNIQUE NOT NULL,  customer_code integer REFERENCES customers (customer_code)
NOTNULL,  order_date time without time zone NOT NULL,  remote_ip inet NOT NULL,  order_time timestamp with time zone
NOTNULL,  order_type varchar(10) NOT NULL,  state varchar(10) NOT NULL,  PRIMARY KEY (order_code)
 
);

CREATE TABLE order_items (  order_code integer REFERENCES orders (order_code) NOT NULL,  customer_code integer
REFERENCEScustomers (customer_code) NOT NULL,  product_code varchar(60) REFERENCES products (code) NOT NULL,  qty int
NOTNULL,  price numeric NOT NULL,  row_price numeric
 
);

--
-- END OF FILE

the order_items table is:

business-test-db2=# \d order_items            Tabella "public.order_items"   Colonna         |         Tipo
   | Modificatori
 
-------------------+-------------------------+--------------order_code       | integer                      | not
nullcustomer_code| integer                      | not nullproduct_code   | character varying(60) | not nullqty
       | integer                      | not nullprice                | numeric                    | not nullrow_price
    | numeric                    |
 
Vincoli di integrità referenziale   "$1" FOREIGN KEY (order_code) REFERENCES orders(order_code)   "$2" FOREIGN KEY
(customer_code)REFERENCES customers(customer_code)   "$3" FOREIGN KEY (product_code) REFERENCES products(code)
 

business-test-db2=#



thanks a lot, you all pointed me out of misconceptualized position.

best ragards all,
Gianluca Riccardi

p.s.

Colonna = column
Tipo = type
Modificatori = modifiers
Vincoli di integrita' referenziale = referential integrity constraints


pgsql-sql by date:

Previous
From: Gianluca Riccardi
Date:
Subject: Re: DB design and foreign keys
Next
From: Jost Degenhardt
Date:
Subject: Finding out to which table a specific row belongs