Junior — Middle
È possibile creare un indice univoco basato su una funzione hash?
sobes.tech AI
Risposta dell'AI
Sì, è possibile creare un indice univoco basato su una funzione hash, ma con alcune precauzioni. La funzione hash trasforma i dati in una lunghezza fissa e, teoricamente, dati di input diversi possono avere lo stesso hash (collisioni).
Nei database, a volte si crea un indice basato sull'hash per accelerare le ricerche, ma non si può garantire l'unicità solo con l'hash senza controlli aggiuntivi.
Se è necessaria una restrizione di unicità, è meglio usare i dati originali o combinare l'hash con controlli aggiuntivi.
Esempio in Go per creare un hash e usarlo in un indice:
import (
"crypto/sha256"
"fmt"
)
func hashKey(key string) string {
h := sha256.Sum256([]byte(key))
return fmt.Sprintf("%x", h)
}
// Usa hashKey per creare l'indice, ma verifica le collisioni durante l'inserimento.