Vincoli di integrtità referenziale
Vincoli di integrtità referenziale
Nell'ambito delle basi di dati relazionali, e in questo caso postgresql, possiamo definire particolari vincoli di integrità referenziale per mettere in relazione le varie tabelle che compongono il database.
Vi sono n. 3 tipi di relazioni, e più nello specifico:
- relazioni one-to-one
- relazioni one-to-many
- relazioni many-to-many
In questo scenario vediamo un esempio di relazione one-to-many.
Supponiamo di avere due entità: - clienti - ordini
un cliente è identificato dai suoi dati anagrafici e da una chiave primaria.
un ordine è identificato da un progressivo (chiave primaria) e un importo.
un cliente, chiaramente, può effettuare più ordini e perciò più ordini possono essere associati ad un cliente.
Invece, un ordine può essere associato ad uno ed un solo cliente.
Ecco una rappresentazione logica della nostra base di dati:
Tabella "clienti"
Nome colonna | Tipo dati |
---|---|
cliente_id | SERIAL |
nome | VARCHAR(100) |
cognome | VARCHAR(100) |
VARCHAR(100) |
Tabella "ordini"
Nome colonna | Tipo dati |
---|---|
ordine_id | SERIAL |
cliente_id | INT |
data_ordine | DATE |
importo | NUMERIC(10,2) |
Il campo cliente_id della tabella 'ordini' è chiave esterna e conterrà la chiave primaria (id) del cliente corrispondente.