[Php-it] Mysql e foreign keys.

Domenico L. domenico.lorusso at pleiade.it
Fri May 4 15:25:41 CEST 2007


Fabio ha scritto:
>
> Boh in realtà secondo me sarebbe una cosa che dovrebbe far il DB. (se 
> imposti la foreign key...)
> Ad esempio, ipotizziamo una colonna "status".
>
> La soluzione classica è creare una tabella status
in questo caso classica suona anche un po' obsoleta cmq..

>
> Non sarebbe molto più leggibile questa seconda versione?
>
> SELECT * FROM prodotto, WHERE statusprodotto = 'deleted'
Certo che sì infatti è consigliabile.

>
> Intendo dire, nel momento in cui imposti la foreign key su un campo 
> varchar, il database ha a mio parere tutte le info per poter far da 
> solo questa ottimizzazione
Sì ma il dbms deve gestire dati non fare il programmatore. Poi questa 
ottimizzazione io non la vedo.
Parlare in termini di Byte in un db non ha senso .Si parla di blocchi, 
che sono un concetto più complesso e la cui dimensione non è sempre 
(anzi quasi mai!) predicibile.

La FK è un constraints che ti evita di avere schifezze nella base dati, 
non fa altro.

Per la cronaca:

Pensare di usare la tua soluzione "classica" per ottimizzare è un 
controsenso
Per risparmiare qualche decina di MB finisci a fare join laddove si 
potevano fare query elementari: non è ottimizzare, al contrario.

Alcuni dbms con implementazione ad oggetti fanno una cosa simile a 
quelle che chiedi, ma non pensare che si occupi meno spazio, anzie 
probabilmente è vero il contrario.


Ciao  :-)

-- 
Domenico L.        	 icq: 645 44 861 - msn: strahd a jumpy.it

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



More information about the Php-it mailing list