[Db] [mySQL] se non c è crealo!

Domenico L. domenico.lorusso a pleiade.it
Mer 15 Nov 2006 17:08:56 CET


Cristiano Verondini ha scritto:
>>> fai SELECT .. FROM figlio WHERE regione=... etc. etc.
>>>
>>>   ti risparmi una join, considera il caso in cui la tabella padre
>>> dovesse andare perduta (estremizzo volutamente), la tabella figlio
>>> avrebbe ancora un significato logico perchè i campi che compongono
>>> la pk hanno una corrispondenza nella realtà.
>
>    Lo trovo un esempio poco calzante. Primo perchè non deve succedere 
> che si cancella una tabella (e certo non decido la *struttura* del DB 
> in vista di un evento di questo tipo), secondo perché la ricerca che 
> fai nella tabella figlio di per sé ha poco significato, probabilmente 
> dovrai risalire all'elemento padre dei record trovato (e vai di join). 
> Oltretutto, la WHERE andrebbe fatta con valori per campi componenti 
> l'indice nella sua parte iniziale ... insomma, lo trovo poco pratico.
Mah.... dunque l'esempio che ho portato non era compiutamente astratto, 
ma si basava su un progetto serio, avere una chiave intelligente più 
della metà delle volte mi evitava join.

Attenzione! spesso le tabelle padre avevano una chiave numerica di tipo 
autoincrement perché non c'erano altre chiavi primarie!
:-)

Però se ci sono tre tabelle nonno->padre->figlio facevo in modo che 
figlio avesse come chiavi sia il codice del nonno che del padre (es.: 
regione-provincia-comune)

Un'altra osservazione che vale la pena fare è che se Esiste una 
gerarchia nella chiave, questa è informazione che conviene tenere, e 
quindi è meglio avere chiavi con più campi.

Sugli indici, invece trovo che l'osservazione sia fuori luogo, gli 
indici si mettono dove servono, poi da rdbms a rdbms ci sono politiche 
diverse e quindi non ha senso parlare di vantaggi e svantaggi in senso 
assoluto.
Inoltre converrai con me che ha poco senso fare un raggruppamento sul 
codice provincia 001 che è sempre il capoluogo di una regione, questo 
per dire che i raggruppamenti sfruttano quasi sempre la gerarchia



-- 
Domenico L.                             icq: 645 44 861

per stupire mezz'ora basta un libro di storia,
io cercai di imparare la Treccani a memoria... [F.d.A.]



Maggiori informazioni sulla lista Db