Sobes.tech
Junior — Middle

Se poate crea un index unic pe baza unei funcții hash?

sobes.tech AI

Răspuns de la AI

Da, este posibil să creați un index unic bazat pe o funcție hash, dar cu anumite precauții. Funcția hash convertește datele într-o lungime fixă, și teoretic, datele de intrare diferite pot avea același hash (coliziuni).

În bazele de date, uneori se creează un index pe bază de hash pentru a accelera căutările, dar nu se poate garanta unicitatea doar pe baza hash-ului fără verificări suplimentare.

Dacă este nevoie de o restricție de unicitate, este mai bine să folosiți datele originale sau să combinați hash-ul cu verificări suplimentare.

Exemplu în Go pentru crearea unui hash și utilizarea lui într-un index:

import (
    "crypto/sha256"
    "fmt"
)

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

// Folosiți hashKey pentru a crea indexul, dar verificați coliziunile la inserare.