Programmazione Web » Sql » Implementare relazioni tra le tabelle di un database

Implementare relazioni tra le tabelle di un database

Difficoltà: Esperto Scritto da Michele Sassi
Sito Web: http://www.comefaccio.net E-Mail
Questo tutorial è stato letto 1123 volte




Il vantaggio che otteniamo usando le relazioni è quello di non dover ripetere tutti i dati principali per tutti i record, il che comporterebbe una ridondanza dei dati e un faticoso lavoro di aggiornamento nel caso in cui, per esempio, un utente registrato nel nostro database cambiasse il suo 'indirizzo'.

Innanzitutto cerchiamo di capire cosa sono le chiavi: una chiave primaria è un campo del database grazie al quale ogni record viene identificato univocamente; una chiave esterna (o foreign key) viene utilizzata in un' altra tabella dello stesso database per essere messa in relazione con la chiave primaria della prima tabella.

In pratica una chiave primaria (vedi 'id_prodotto' della tabella 'prodotti') è univoca e non può ripetersi; non ci possono essere infatti più record con lo stesso 'id_prodotto'. Una chiave esterna invece può anche ripetersi.

Vediamo un esempio... creiamo due tabelle chiamate rispettivamente 'prodotti' e 'clienti':

id_prodotto prodotto prezzo id_acquirente
       
1 monitor
200
2
2 pc portatile
1000
1
3 mouse
15
3

 

id_cliente nome cognome indirizzo
       
1 Luca
Rossi
Via Piave 24
2 Antonio
Bianchi
Via Roma 32
3 Mario
Verdi
Via Milano 234
4 Marco
Gialli
Via Torino 439

Abbiamo creato due tabelle, ognuna con scopi diversi: la prima conterrà l'elenco dei prodotti e la sua chiave primaria sarà 'id_prodotto', la seconda tabella conterrà le informazioni dei clienti e avrà come chiave primaria 'id_cliente'.

Come possiamo notare la tabella 'acquisti' contiene il campo 'id_acquirente' che funge da join (o connessione) per la relazione tra le due tabelle. E' proprio grazie a quel campo (chiave esterna) che capiremo che il 'prodotto' monitor con 'id_prodotto' ugale a 1 è stato venduto all'acquirente con 'id_acquirente' uguale a 2. Colui che risulta essere l' 'id_acquirente' uguale a 2, guardando la tabella 'clienti' è Antonio Bianchi.

In poche parole il monitor del costo di 200 euro è stato venduto ad Antonio Bianchi.

Vediamo ora come realizzare una query usando il join:

SELECT *
FROM prodotti, clienti
WHERE id_acquirente = id_cliente AND id_prodotto = '1';

Vediamo di chiarire due concetti che vi possono tornare utili:

Parliamo di equijoin quando la condizione che mette in relazione le due tabelle è un = (uguale).

Parliamo invece di notazione a punti (o dot notation) quando vogliamo specificare la tabella a cui un campo appartiene; per esempio, se volessimo indicare il campo 'id_cliente' della tabelle 'clienti' con la dot notation scriveremo: 'clienti.id_cliente'. Questo sistema, anche se più faticoso e a volte del tutto inutile, può servire a risolvere problemi di ambiguità nel caso in cui si abbiano due campi con lo stesso nome in tabelle differenti. Nel nostro caso la dot notation risulterebbe inutile in quanto abbiamo usato nomi differenti per ognuno dei campi.

Aggiungi questo tutorial ai preferiti! Aggiungi questo tutorial ai preferiti


SEGNALA QUESTA RISORSA AD UN AMICO
Tuo nome
Tua mail
Nome amico
Mail tuo amico
Google
AREA UTENTI
E-MAIL PASSW
Perso la password?
I TUTORIAL PIU' LETTI
GIF ANIMATE
Script Gratis!
Spot

Sito Service
Tutorial per realizzare un sito web partendo da zero e script Asp per Aruba Server.

Tutorials & scripts
Articoli su HTML, CSS, PHP, ASP, Javascript, MySQL a cura di AG web solutions!

Guida Prestiti e Carte di credito
Giochi flash free
Giochi gratis online
Ricette di cucina gratis
Migliori torrent italiani
Notizie Dieta e Diete Alimentari

Cerca con Google