[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