numéro automatique aléatoire (random)

Le
PetitTrot
Bonjour,

Lorsqu'on crée un champ dans Access il est possible de le déclarer
"numéro automatique + aléatoire"

Ce nombre aléatoire. A quel degré est-il unique?
Est-il unique seulement à la table?
(i.e. est-ce Access cré d'abord un nombre et ensuite vérifie s'il est
unique, sinon il en génère un autre etc.)
Est-il unique dans toute la base de données?
Est-ce qu'il y a un algorithme connu pour générer un numéro automatique
aléatoire genre Access
(i.e. pour programmer en Visual Basic les clés uniques)
Si 2 utilsateurs cré un numéro automatique aléatoire (sur deux ordinateurs
différents) peut-ton avoir
une idée de la probalité que c'est 2 utilisateurs ont le même numéro?

M'excuse ça fait plusieurs questions ;-)
C'est que ces nombres uniques ça commence à être une obsession

Actuellement, je me suis fait une base de données avec une seule table et
un seul champ en numéro automatique aléatoire.
Ainsi quand j'ai besoin d'un nombre unique (de type Long) j'ajoute un
enregistrement et récupère le nombre.
Et je me sers de ce nombre pour d'autres tables dans une autre base de
données.
Est-ce que cela fait du sens?

note: je ne suis pas intéressé par un GUID car c'est beaucoup trop gros,
i.e. 32 bytes versus 4 bytes pour un Long.
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Raymond [mvp]
Le #5119161
Bonjour.

tu as posé trop de questions car les unes découlent des autres.
il faut poser le problème:

Est-il unique seulement à la table? ==> oui
aucune documentation, à ma connaissance, sur l'algorithme access.


probabilité de doublons en multi-utilisateurs : ==> aucune

Ainsi quand j'ai besoin d'un nombre unique (de type Long) j'ajoute un
enregistrement et récupère le nombre.
Et je me sers de ce nombre pour d'autres tables dans une autre base de
données.
Est-ce que cela fait du sens?
les nombres aléatoires étant par table, ils ne peuvent pas être utilisés

ailleurs.

ça devrait décanter un peu ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"PetitTrot" news:VceAc.15773$
Bonjour,

Lorsqu'on crée un champ dans Access il est possible de le déclarer
"numéro automatique + aléatoire"

Ce nombre aléatoire. A quel degré est-il unique?
Est-il unique seulement à la table?
(i.e. est-ce Access cré d'abord un nombre et ensuite vérifie s'il est
unique, sinon il en génère un autre etc.)
Est-il unique dans toute la base de données?
Est-ce qu'il y a un algorithme connu pour générer un numéro automatique
aléatoire genre Access
(i.e. pour programmer en Visual Basic les clés uniques)
Si 2 utilsateurs cré un numéro automatique aléatoire (sur deux
ordinateurs

différents) peut-ton avoir
une idée de la probalité que c'est 2 utilisateurs ont le même numéro?

M'excuse ça fait plusieurs questions ;-)
C'est que ces nombres uniques ça commence à être une obsession...

Actuellement, je me suis fait une base de données avec une seule table
et

un seul champ en numéro automatique aléatoire.
Ainsi quand j'ai besoin d'un nombre unique (de type Long) j'ajoute un
enregistrement et récupère le nombre.
Et je me sers de ce nombre pour d'autres tables dans une autre base de
données.
Est-ce que cela fait du sens?

note: je ne suis pas intéressé par un GUID car c'est beaucoup trop gros,
i.e. 32 bytes versus 4 bytes pour un Long.




PetitTrot
Le #5314081
"Raymond [mvp]" news:
Bonjour.

tu as posé trop de questions car les unes découlent des autres.
il faut poser le problème:


En effet. Mieux vaut plus que pas assez.

Est-il unique seulement à la table? ==> oui
aucune documentation, à ma connaissance, sur l'algorithme access.



Donc si j'ai plusieurs tables dans une base de données Access
et que chacune à un champ "numéro automatique - random" je
peux avoir le même numéro dans plusieurs table... vu que c'est
unique seulement a une table.

probabilité de doublons en multi-utilisateurs : ==> aucune


En fait ici je me suis mal exprimé.
J'ai deux utilisateurs qui utilisent le même programme
et qui stocke chacun dans sa base de données.
Disons donc Bruno et Alice ;-)
Un jour Bruno reçoit des informations de la base de données
de Alice et décide d'intégrer ces données dans SA base de
données... dans ce cas la question qui se pose c'est que
Bruno risque d'avoir des problèmes car il y
des chances (même petites) d'avoir un doublons pour
un champ à numéro automatique.

Bon! après avoir écrit tout ça je me dis que "c'est bien évident".
Puisque c'est seulement unique à une table.
i.e. ce n'est pas pour rien qu'on a inventé les GUID ;-)

Pour s'instruire je peux poser une autre question.
Admettons que j'ai une table avec un champ numéro atomatique random.
Je cré 1,000,000 d'enregistrement. Donc 1,000,000 de ID différent.
Je supprime tous ces enregistrement. Compresse la table.
Ensuite je cré de nouveau 1,000,000 d'enregistrement.
Est-ce que je peux m'attendre que plusieurs nombre sont
commun aux 1,000,000 premier et 1,000,000 deuxième?

Hum... bon je vois qu'on peut vérifier les doublons entre 2 tables.
Je m'en vais tester tout cela...


Raymond [mvp]
Le #5314041
Bonjour.

Un jour Bruno reçoit des informations de la base de données
de Alice et décide d'intégrer ces données dans SA base de
données... dans ce cas la question qui se pose c'est que
Bruno risque d'avoir des problèmes car il y
des chances (même petites) d'avoir un doublons pour
un champ à numéro automatique.

les numauto de l'autre table ne sont pas ajoutés mais un nouveau numauto est

créé.

Je supprime tous ces enregistrement. Compresse la table.
Ensuite je cré de nouveau 1,000,000 d'enregistrement.
Est-ce que je peux m'attendre que plusieurs nombre sont
commun aux 1,000,000 premier et 1,000,000 deuxième?
bien sûr car tu repars à zéro et tu auras certainement dans la nouvelle

série des numéros de l'ancienne mais l'ancienne n'existe plus.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"PetitTrot" news:olpAc.60077$

"Raymond [mvp]" news:
Bonjour.

tu as posé trop de questions car les unes découlent des autres.
il faut poser le problème:


En effet. Mieux vaut plus que pas assez.

Est-il unique seulement à la table? ==> oui
aucune documentation, à ma connaissance, sur l'algorithme access.



Donc si j'ai plusieurs tables dans une base de données Access
et que chacune à un champ "numéro automatique - random" je
peux avoir le même numéro dans plusieurs table... vu que c'est
unique seulement a une table.

probabilité de doublons en multi-utilisateurs : ==> aucune


En fait ici je me suis mal exprimé.
J'ai deux utilisateurs qui utilisent le même programme
et qui stocke chacun dans sa base de données.
Disons donc Bruno et Alice ;-)
Un jour Bruno reçoit des informations de la base de données
de Alice et décide d'intégrer ces données dans SA base de
données... dans ce cas la question qui se pose c'est que
Bruno risque d'avoir des problèmes car il y
des chances (même petites) d'avoir un doublons pour
un champ à numéro automatique.

Bon! après avoir écrit tout ça je me dis que "c'est bien évident".
Puisque c'est seulement unique à une table.
i.e. ce n'est pas pour rien qu'on a inventé les GUID ;-)

Pour s'instruire je peux poser une autre question.
Admettons que j'ai une table avec un champ numéro atomatique random.
Je cré 1,000,000 d'enregistrement. Donc 1,000,000 de ID différent.
Je supprime tous ces enregistrement. Compresse la table.
Ensuite je cré de nouveau 1,000,000 d'enregistrement.
Est-ce que je peux m'attendre que plusieurs nombre sont
commun aux 1,000,000 premier et 1,000,000 deuxième?

Hum... bon je vois qu'on peut vérifier les doublons entre 2 tables.
Je m'en vais tester tout cela...








Poster une réponse
Anonyme