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

Angelo Galleja angelo.galleja a email.it
Mer 15 Nov 2006 16:52:16 CET


Cristiano Verondini ha scritto:
> 
>>> Se per me è chiave la sequenza di 12 caratteri che mi identifica
>>> regione-provincia-comune-filiale, suddiviso in 4 campi, se decido di
>>> portarmi appresso questi 4 campi nelle tabelle di dettaglio (quelle
>>> che
>>> per intenderci sono legate 1-n)
>>>
>>> quindi
>>> tabella padre:
>>> regione char(3)
>>> provincia char(3)
>>> comune char(3)
>>> filiale char(3)
>>> ....
>>>
>>>
>>>
>>> tabella figlo:
>>> regione char(3)
>>> provincia char(3)
>>> comune char(3)
>>> filiale char(3)
>>> ....
>>>
>>>
>>> Se voglio estrarre tutti i record (magari aggregati) dalla tabella
>>> figlio *non* devo fare una join ma una semplice where
> 
>    Questa non l'ho capita. E se nelle tabelle figlio mi porto dietro una 
> chiave surrogata? Posso comunque continuare ad avere quei dati, magari 
> anche indicizzati ...

invece di fare SELECT .... FROM padre
... LEFT JOIN ON figlio.idpadre=padre.id... WHERE padre.regione = '...' etc. etc.

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à.




Maggiori informazioni sulla lista Db