Homepage Site Map


   
PROGRAMMAZIONE
   FARE WEB
   HTML
   CSS
   PHP
   MySQL
   XML - XSL
GRAFICA
   PAINT SHOP
   ANIMATION SHOP
   SWISH
   SWISHMAX
SCRIPT
   JAVASCRIPT
   PHP
   APPLET JAVA
   CSS GENERATOR
   WEB TOOLS
DOWNLOAD
   FONTS
   ICONE E AVATAR
   SMILES
   GIF ANIMATE
   CURSORI
   CALENDARI
   KAOANI
   BASI BANNER
   SCREENMATES
   MEEGOS
   GIOCHI
   VIDEO E PPS
ARTICOLI
   ARTICOLI
   GUADAGNA SITO
LINKS
   LINK TO ME
   VOTAMI
   SCAMBIO LINK
   SCAMBIO BANNER


zanox Partner promuovono Partner


 
  

Home -> Manuali e Tutorials -> Guida MySQL Database -> Relazioni  


Scarica il tutorial      |    Stampa il tutorial      |    Cerca nel sito      



Modelli Relazionali



La rappresentazione dei dati nel modello logico relazionale è basata sul concetto di relazione; per comodità di rappresentazione, conviene rappresentare tale relazione sotto forma di tabella, che indicherà quindi un'associazione tra i dati.
Nella definizione di una tabella va sempre fissata una chiave primaria, che in genere è messa sul campo ID. Le relazioni vengono poi assegnate stabilendo anche una chiave secondaria, che ha il ruolo di collegare una tabella ad un'altra.


Relazione 1:1


Tabella "Nazioni"
ID Nome
1 Austria
2 Francia
3 Italia


Tabella "Capitali"
ID Nome ID_Nazione
1 Roma 3
2 Vienna 1
3 Parigi 2


Ho messo così in relazione le capitali con le nazioni nella tabella "Capitali"; avrei potuto, in alternativa, anche inserire un campo ID_Capitale nella tabella "Nazioni". Questo tipo di relazione è detta 1:1 visto che ad ogni Nazione corrisponde una sola Capitale.


create table Nazioni (
ID int primary key auto_increment,
Nome varchar(30)
);


create table Capitali (
ID int primary key auto_increment,
Nome varchar(30),
ID_Nazione int
);


Relazione 1:n


Tabella "Contatti"
ID Nome Cognome
1 Andrea Susi
2 Simone Rizzo
3 Antonio De Paolis


Tabella "Telefoni"
ID Telefono ID_Persona
1 06681164 1
2 08422021 3
3 339125887 1
4 3292788987 2


Per creare tale relazione, devo inserire nella tabella "Telefoni" il campo di relazione ID_Persona. Qui, a differenza della relazione 1:1, non potrei scrivere le relazioni in altro modo. E' detta 1:n visto che ad ogni Persona possono corrispondere più di un Telefono.

E' utile vedere ora come fare delle Query incrociate; ad esempio, quale è il numero di telefono di Antonio De Paolis??


select Telefono from Telefoni,Contatti
  where Contatti.ID=Telefoni.ID_Persona
  and Contatti.Nome='Antonio'
  and Contatti.Cognome='De Paolis';


Contatti.ID=Telefoni.ID_Persona rappresenta il criterio di correlazione tra le due tabelle richiamate dalla select. Contatti.ID serve per riferirsi al campo ID della Tabella "Contatti".


Relazione n:n


Tabella "Prodotti"
ID Prodotto
1 poltrona
2 televisore
3 letto singolo
4 letto matrimoniale
5 video-registratore


Tabella "Fornitori"
ID Ditta
1 Foppa Pedretti
2 Sony
3 Philips
4 Bassetti


Per effettuare una relazione n:n, nel senso che ad ogni prodotto corrispondono n fornitori, e viceversa, si deve costruire una tebella di relazione contenente solo gli ID delle due tabelle:


Tabella "Relazione"
ID_Prodotti ID_Ditta
1 1
2 2
2 3
3 4
4 4
5 2
5 3



Torna su      |    Indice Guida      |    Pagina << 12 >>    



Vai al W3C CSS Validator toolkit.
Realizzato con PHP. Vai al sito ufficiale del PHP.
Testato anche con Mozilla Firefox. Vai al sito ufficiale.

Home     Contacts     Forum     FAQ     Newsletter     Mappa     Cerca     Link to me

  Vedi gli RSS del sito.      

-->  [Il tuo link qui]



Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /web/htdocs/www.webstyling.it/home/counter/insert_count.php on line 75

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /web/htdocs/www.webstyling.it/home/counter/insert_count.php on line 112

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /web/htdocs/www.webstyling.it/home/counter/insert_count.php on line 151

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /web/htdocs/www.webstyling.it/home/counter/insert_count.php on line 153

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /web/htdocs/www.webstyling.it/home/counter/insert_count.php on line 154

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /web/htdocs/www.webstyling.it/home/counter/insert_count.php on line 155

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /web/htdocs/www.webstyling.it/home/counter/insert_count.php on line 156

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /web/htdocs/www.webstyling.it/home/counter/insert_count.php on line 157

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /web/htdocs/www.webstyling.it/home/counter/insert_count.php on line 192

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /web/htdocs/www.webstyling.it/home/counter/insert_count.php on line 227