Sobes.tech
Junior — Middle

Is het mogelijk om een unieke index te maken op basis van een hashfunctie?

sobes.tech AI

Antwoord van AI

Ja, het is mogelijk om een unieke index te maken op basis van een hashfunctie, maar met enkele kanttekeningen. De hashfunctie zet gegevens om in een vaste lengte, en theoretisch kunnen verschillende invoergegevens dezelfde hash hebben (botsingen).

In databases worden soms hash-gebaseerde indexen gemaakt om zoekopdrachten te versnellen, maar het garanderen van uniciteit alleen op basis van de hash is niet mogelijk zonder aanvullende controle.

Als een unieke beperking nodig is, is het beter om de originele gegevens te gebruiken of de hash te combineren met extra controles.

Voorbeeld in Go om een hash te maken en te gebruiken in een index:

import (
    "crypto/sha256"
    "fmt"
)

func hashKey(key string) string {
    h := sha256.Sum256([]byte(key))
    return fmt.Sprintf("%x", h)
}

// Gebruik hashKey om de index te maken, maar controleer op botsingen bij het invoegen.