mi potete spiegare la differenza operativa di prendere due campi e crearne due indici diversi al posto di creare un solo indice che tutti e due i campi dentro?
mi potete spiegare la differenza operativa di prendere due campi e crearne due indici diversi al posto di creare un solo indice che tutti e due i campi dentro?
Originariamente inviato da powerflash2
mi potete spiegare la differenza operativa di prendere due campi e crearne due indici diversi al posto di creare un solo indice che tutti e due i campi dentro?non ho capito la tua domanda, sorry... puoi riformularla?
Intendi chiedere la differenza tra avere una primary key formata da un singolo elemento o da due o più elementi?
Tipo: nella tabella Anagrafica avere:
- opzione A: Anagrafica (ID, Cognome, Nome, Indirizzo)
- opzione B: Anagrafica (Cognome, Nome, Indirizzo)
A livello logico poco cambia, i vantaggi sono:
- avere un ID: semplifica l'utilizzo di chiavi esterne, accetta persone con nome e cognome uguali
- non avere un ID: ti assicura di non avere duplicati di nome-cognome, hai un campo in meno da gestire
facciamo un esempio diverso così mi spiego meglio:
Ho la seguente tabella:
prodotti (id_prodotto, categoria, nome, produttore)
adesso solitamente io utilizzao id_prodotto come chiave PRIMARY, auto increment ecc... ma siccome faccio in questo dei select cercando per il campo CATEGORIA e PRODUTTORE mi conviene creare una seconda chiave INDEX con tutte e due i campi? oppure creare due ulteriori chiavi INDEX?... cioè, una per CATEGORIA e una per PRODUTTORE?
Non so entrare più nello specifico, ma sicuramente avere degli indici sui campi su cui esegui maggiormente ricerche migliora le prestazioni.
Poi dipende dai "numeri" di cui parli... su 100 prodotti non te ne accorgi neanche, su 1.000.000 magari sì!!
E certamente se le tue ricerche sono sempre sugli stessi 2 campi ti conviene, sempre a livello prestazionale, un unico indice sui due campi.