linux user group brescia

immagine del castello

Archivio della mailing list

R: R: postgresql foreign key

cartolina cartolina a tiscali.it
Mar 6 Maggio 2003 07:54:51 UTC
>Il codice SQL usato per creare le tabelle. O un \d dalla shell di postgre.
attualmente ci sono solo prove, lo sto costruendo
quello vero ha 56 tabelle incomprensibili,
io stavo cercando di capire come e' meglio strutturare il tutto.

tu mi dici "L'indice e' una cosa che non ha molto a che vedere con
l'autoincremento."
che intendi? ho sbagliato tutto?
io pensavo di usare un indice con l'autoincremento per evitare che possa
essere toccato dagli utenti
ed usare lo stesso indice per relazionare piu' tabelle.
a sto punto: a che serve un indice?
potrei non usare le funzioni di postgres ma fare tutto in query
faccio un esempio con due tabelle:
mi serve una "chiave" per fare si' che una tuple di "contatti" sia
relazionata a una di "dettagli"
che non esista nulla in "dettagli" che non abbia una relazione con una
tuple di "contatti".
che dovrei fare invece?

--------------------------------------------
base=# \d contatti
                           Table "public.contatti"
 Column  |  Type   |                        Modifiers
---------+---------+-------------------------------------------------------
---
 id      | integer | not null default
nextval('public.contatti_id_seq'::text)
 nome    | text    |
 cognome | text    |
Indexes: contatti_pkey primary key btree (id)

base=# \d dettagli
                             Table "public.dettagli"
   Column   |  Type   |                        Modifiers
------------+---------+----------------------------------------------------
------
 id         | integer | not null default
nextval('public.dettagli_id_seq'::text)
 idcontatti | integer |
 via        | text    |
 citta      | text    |
Indexes: dettagli_pkey primary key btree (id)
Foreign Key constraints: id_cont FOREIGN KEY (idcontatti) REFERENCES
contatti(id) ON UPDATE CASCADE ON DELETE CASCADE

base=#

-----------------------------------------------

> ineriths?
???

serve per creare una tabella figlia copiando i campi dalla tabella madre
i dati inseriti nella tabella figlia si vedono con un select sulla madre
i dati inseriti nella tabella madre non si vedono sulla figlia

ciao
furio




Maggiori informazioni sulla lista Lug