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

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


Cristiano Verondini ha scritto:
>>> sto cercando "nonsocosa" che sia in
>>> LIGURIA->GENOVA->GE->LA_MIA_FILIALE e IMHO è più naturale di cercare
>>> "nonsocosa" che abbia come id padre 26
> 
>    Ma per sapere cos'è quel 'nonsocosa' devi risalire al padre.

   non necessariamente, finora in tutti i software che ho sviluppato
mi sono sempre trovato bene con questo approccio

>>>> , probabilmente dovrai
>>>> risalire all'elemento padre dei record trovato (e vai di join).
>>>
>>> probabilmente, ma qualora non fosse così mi sono risparmiato una JOIN
> 
>    Ecco. In quanti casi hai la necessità di conoscere *solo* i figli 
> senza sapere  di che padre sono? (mater semper certa est, pater ... ;) )

"più di quanti tu possa immaginare" (semicit.) :) a parte gli scherzi mi è capitato
più di una volta

> 
>>>> Oltretutto, la WHERE andrebbe fatta con valori per campi componenti
>>>> l'indice nella sua parte iniziale ...
>>>
>>> scusa ma questa parte non l'ho capita
> 
>    Se ho un indice composto da, diciamo, tre campi, a, b, c le WHERE, 
> per poter usare l'indice, devono essere:
> 
>        (1) WHERE a = '...'
>        (2) WHERE a = '...' AND b = '...'
>        (3) WHERE a = '...' AND b = '...' AND c = '...'
> 
>    Altrimenti l'indice non può essere usato. 

impostando tutto in un certo modo userai sempre il WHERE con tutti i campi
che compongono la chiave perchè la chiave è quella

> Dovrebbe essere una 
> limitazione dei BTree, quindi sicuramente MySQL ne soffre. Per altri 
> motori, non saprei.

grazie per la spiegazione


Maggiori informazioni sulla lista Db