Sobes.tech
Junior — Middle

Je možné vytvoriť jedinečný index na základe hash funkcie?

sobes.tech AI

Odpoveď od AI

Áno, je možné vytvoriť unikátny index založený na hashovacej funkcii, ale s určitými upozorneniami. Hashovacia funkcia premieňa údaje na pevne stanovenú dĺžku a teoreticky môžu mať rôzne vstupy rovnaký hash (kolízie).

V databázach sa niekedy vytvára index na základe hashu na zrýchlenie vyhľadávania, ale garantovať jedinečnosť len na základe hashu bez ďalšej kontroly nie je možné.

Ak je potrebné obmedzenie jedinečnosti, je lepšie použiť pôvodné údaje alebo kombinovať hash s ďalšími kontrolami.

Príklad v Go na vytvorenie hashu a jeho použitie v indexe:

import (
    "crypto/sha256"
    "fmt"
)

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

// Použite hashKey na vytvorenie indexu, ale pri vkladaní kontrolujte kolízie.