Junior — Middle
Czy można utworzyć unikalny indeks oparty na funkcji hash?
sobes.tech AI
Odpowiedź od AI
Tak, można utworzyć unikalny indeks oparty na funkcji hash, ale z pewnymi zastrzeżeniami. Funkcja hash zamienia dane na stałą długość, i teoretycznie różne dane wejściowe mogą mieć ten sam hash (kolizje).
W bazach danych czasami tworzy się indeks na podstawie hasha, aby przyspieszyć wyszukiwanie, ale nie można zagwarantować unikalności tylko na podstawie hasha bez dodatkowej weryfikacji.
Jeśli potrzebujesz ograniczenia unikalności, lepiej użyć oryginalnych danych lub połączyć hash z dodatkowymi sprawdzeniami.
Przykład w Go do tworzenia hasha i używania go w indeksie:
import (
"crypto/sha256"
"fmt"
)
func hashKey(key string) string {
h := sha256.Sum256([]byte(key))
return fmt.Sprintf("%x", h)
}
// Użyj hashKey do tworzenia indeksu, ale sprawdzaj kolizje podczas wstawiania.