Junior — Middle
Lze vytvořit unikátní index na základě hashovací funkce?
sobes.tech AI
Odpověď od AI
Ano, je možné vytvořit unikátní index založený na hashovací funkci, ale s určitými upozorněními. Hashovací funkce převádí data na pevnou délku a teoreticky mohou různá vstupní data mít stejný hash (kolize).
V databázích se někdy vytváří index podle hashe pro urychlení vyhledávání, ale zaručit unikátnost pouze podle hashe bez dodatečné kontroly nelze.
Pokud je potřeba omezení unikátnosti, je lepší použít původní data nebo kombinovat hash s dodatečnými kontrolami.
Příklad v Go pro vytvoření hashe a jeho použití v indexu:
import (
"crypto/sha256"
"fmt"
)
func hashKey(key string) string {
h := sha256.Sum256([]byte(key))
return fmt.Sprintf("%x", h)
}
// Použijte hashKey k vytvoření indexu, ale při vkládání kontrolujte kolize.