Une autre solution pourrait être de générer une suite aléatoire puis vérifier qu'elle n'existe pas dans la BDD, mais ça va être un désastre quand on arrivera à la fin des combinaisons disponibles.
Là tu pars du principe que pour chercher si ta chaîne existe tu fais un "for i = 1 to nb". Dans ton cas il doit y avoir bcp plus malin à faire puisque ton ID est un hashage à lui tout seul. Je suis pas expert en BDD mais si cet ID unique est vraiment l'ID de tes enregistrements, laisse faire ton SGBD, il te dira de manière très efficace si l'ID existe déjà et tu auras tout loisir d'en recréer un.
Mais dans tous les cas, c'est à toi de surdimensionner cet ID pour que la collision soit peu probable (si tu vises 1 million d'enregistrements, chercher un ID avec 1 milliard de possibilités) comme ça tu passeras pas des heures à chercher le dernier ID disponible.
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
# Ça se tente sans rien faire
Posté par gUI (Mastodon) . En réponse au message Générer un nouvel id unique. Évalué à 2.
Là tu pars du principe que pour chercher si ta chaîne existe tu fais un "for i = 1 to nb". Dans ton cas il doit y avoir bcp plus malin à faire puisque ton ID est un hashage à lui tout seul. Je suis pas expert en BDD mais si cet ID unique est vraiment l'ID de tes enregistrements, laisse faire ton SGBD, il te dira de manière très efficace si l'ID existe déjà et tu auras tout loisir d'en recréer un.
Mais dans tous les cas, c'est à toi de surdimensionner cet ID pour que la collision soit peu probable (si tu vises 1 million d'enregistrements, chercher un ID avec 1 milliard de possibilités) comme ça tu passeras pas des heures à chercher le dernier ID disponible.
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.