Calculé d'une clé pour un numero de dossier : quelle méthode ?
evenkil
Messages postés35Date d'inscriptionlundi 13 février 2006StatutMembreDernière intervention15 avril 2014
-
7 janv. 2008 à 17:28
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 2012
-
9 janv. 2008 à 00:04
Bonjour à tous
Je dispose de numeros de dossiers, allant de 0 à 999999999 et j'aimerai pouvoir calculer une clé (de 1 entier) pour chaque numero de dossier.
Exemple : pour dossier numero 6739, j'aimerai avoir un algo qui me permetterait de toujours obtenir la même clé qui serait imaginons 7. Ce qui au final me donnerai un numero de dossier : 6739-7
De même pour un dossier 6740, l'algo me donnerait la clé 2, ce qui me donnerai un numero de dossier 6740-2
A votre avis, quel algo type d'algo dois je utiliser pour le calcule de ma clé ?
Je me suis renseigné du coté du hachage, avec la fonction hash() mais il semble qu'on ne puis obtenir qu'une clé de 16 octet.
A la limite je n'ai qu'a prendre le 1er octet, mais le temps de calcule serveur de la fonction hash et bien élevé pour l'utilité ...
Avez vous une meilleur idée ?
malik7934
Messages postés1154Date d'inscriptionmardi 9 septembre 2003StatutMembreDernière intervention15 août 200917 7 janv. 2008 à 19:22
Salut,
Tu veux 10 milliards de clés (n° de dossier de 0 à 999999999 et une clé unique je présume par dossier).
Si tu ne veux pas utiliser une fonction de hashage (et pourquoi pas? avec md5(numero du dossier) tu auras toujours le même résultat), il faut que tu trouves une fonctions bijective (si ma mémoire est bonne) pour pouvoir avoir une clé unique.
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 8 janv. 2008 à 00:04
perso je ne comprends pas pourquoi tu veux avoir une clée pour chaques dossier sachant que (si j'ai bien compris) tes dossiers etant des numéros, ils ont forcément leur clée d'attribué ? (leur nom étant leur clef) ?
cs_caviar
Messages postés329Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention29 mars 20152 8 janv. 2008 à 11:52
euuh ...ben trouve un truc sur le fonctionnement de la clé rib ....
j'ai vu un script pour verrifier les num des billets de banque passer
tu peux p'tet t'en inspirer
@+
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 8 janv. 2008 à 11:56
L'histoire des clefs Rib, comme les numéro de sécurité sociale (le dernier chiffre), c'est un modulo sur les valeurs d'avant, pour vérifier que le numéro entré est bien le bon.
Tu peux tester avec des modulos, bien que si tu a des dossier avec numéro, rajouter un autre numéro ne me semble pas utile mais bon :)
evenkil
Messages postés35Date d'inscriptionlundi 13 février 2006StatutMembreDernière intervention15 avril 2014 8 janv. 2008 à 15:19
Merci pour vos reponses.
Le but de la cle est d eviter les erreurs lors de saisies de numero de dossier.
Exemple, si on tape le numero 5875 alors qu on voulait taper le 5872, il y a un risque que l utilisateur ne voit pas son erreur.
D ou l idee de creer une cle qui permet d eviter les risque d erreur, en effet il y a peu de chance que 5875 et 5872 aient la meme cle.
Pour les rib j ai regarde avant de poster ce message et je suis malheuresement tombe sur des algo fesant intervenir des modulos.
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 8 janv. 2008 à 17:57
malheureusement ? je pense que ce serait la seule solution viable bien que je persiste à croire que le numéro de dossier en lui même n'a pas besoin de clé, je m'explique :
Ton utilisateur entre le numéro de dossier : pourquoi ? pour en créer un ou pour le consulter ?
Pour le créer, tu fait un champ avec auto increment et tu t'occupe pas de l'id du document.
Pour le consulter tu lui donne acces en liens avec un titre et pas un numéro.
S'il se plante, tu lui donne soi une erreur (t'a pas le droit!), soit le dossier s'il peux le consulter, il se rendra compte tout seul qu'il s'est planté.
Sauf si c'est plus particulier, auquel cas j'aurai besoin de plus d'explication pour tenter de t'aider
JulSoft
Messages postés354Date d'inscriptiondimanche 3 juin 2001StatutMembreDernière intervention11 mars 2013 8 janv. 2008 à 23:45
J'avais entendu parler il y'a un certain temps d'un truc tout con... tu utilise comme clé la somme de tous les chiffres, tu refais la somme de tous ces chiffres si t'as un truc <9 etc. T0arrives à 1 seul chiffre et voila ça permet de parer une partie des erreurs de saisie
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 8 janv. 2008 à 23:54
ca n'a rien d'injectif, comme toutes les fonctions de hash...
t'as 10 valeurs possibles pour 1000 000 d'antecedants.... t'auras plein d'antecedants par valeurs, c'est pas possible autement...
JulSoft
Messages postés354Date d'inscriptiondimanche 3 juin 2001StatutMembreDernière intervention11 mars 2013 9 janv. 2008 à 00:01
Le but etait pas d'avoir quelque chose d'injectif (ou alors j'ai rien compris), juste un truc qui permette de verifier si une saisie est plausible il me semble... donc si t'arrives a faire une faute de frappe qui donne le même hash à la con, bah chapeau (j parle de faute de frappe, pas de qqch de voulu!!!)