Recherche ID

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Recherche ID

par bucheron » 02 juin 2006, 12:11

merci je pense opter pour votre solution :D

par naholyr » 02 juin 2006, 11:44

rien qu'avec un INT, tu as 2'000'000'000 (2 milliards) d'id devant toi. J'utilise ceci pour enregistrer les historiques des parties d'échecs chinois sur mon site.

En tablant sur une moyenne de 100 coups par partie (en réalité c'est plutot 50), avec une moyenne de 5'000 parties par jour (j'ai de l'espoir avant d'atteindre ce chiffre avec un seul jeu d'échecs), j'ai donc 100*5'000 lignes par jour dans cette table, soit 500'000*365 lignes par an, soit un peu moins de 200'000'000 (200 millions) de lignes par an. J'ai donc 10 ans avec ce rythme effréné avant que mon champ en AUTO_INCREMENT se retrouve plafonné. Je pense que d'ici 5-6 ans si j'ai atteint un tel rythme, j'aurai le temps de voir venir pour éventuellement passer en BIGINT et m'assurer quelques millénaires de tranquillité (passer en BIGINT dès le départ serait plutôt du gachis d'espace disque).

Tu peux donc sans crainte écouter la voix de la raison ici personnifiée par albat :langue:

par albat » 02 juin 2006, 11:31

Tu as tout à fait raison.
ma clé primaire est sur 5 chiffres mais imaginons qu'un jour j'atteigne le plafond maxi .....
MySQL te propose des types numériques entiers
avec lesquels tu n'es pas prêt d'atteindre le plafond... :lol:
http://dev.mysql.com/doc/refman/5.1/en/ ... rview.html
autant réutiliser les clés supprimé, t'est pas d'accord ?
Les bases de données ne sont pas écologiques : elles ne recyclent pas ! :langue:
Techniquement, rien ne t'empêchera de le faire, mais... Bouh, que c'est mal !
je n'utilise pas d'auto-increment.
j'ai fait une fonction qui va rechercher la position du dernier ajouté et me renvoi la valeur +1.
Sans vouloir contester la qualité de ton travail,
ne crois-tu pas que tu te compliques la vie ?... ;)

par bucheron » 02 juin 2006, 11:20

Tu as tout à fait raison.
ma clé primaire est sur 5 chiffres mais imaginons qu'un jour j'atteigne le plafond maxi ..... autant réutiliser les clés supprimé, t'est pas d'accord ?

je n'utilise pas d'auto-increment.
j'ai fait une fonction qui va rechercher la position du dernier ajouté et me renvoi la valeur +1.

par albat » 02 juin 2006, 11:14

Et tu cherches à identifier ce plus petit entier positif dans quel but ?... :-k

Je parierais que ce champ est une clé primaire auto-incrémentée
et que tu veux recycler les nombres non utilisés par cette clé
pour les attribuer à de nouveaux enregistrements, non ? ;)

Si tel est le cas, tu vas pouvoir gagner du temps :
abandonne immédiatement ce funeste projet ! :afraid:

Une clé primaire n'a qu'un seul but :
identifier de manière fiable et définitive un enregistrement.

Elle ne sert pas de compteur et ne doit jamais être réattribuée
suite à la suppression d'un enregistement ou toute autre raison.
L'intégrité et la cohérence de ta base en dépendent,
même si tu es persuadé d'avoir veillé à tout vérifier...

Maintenant, si c'est pour une autre raison... ;)

Recherche ID

par Bucheron » 02 juin 2006, 11:07

Bonjour,

je cherche à écrire une fonction php qui va prendre en parametre le nom d'une table et le nom d'un champ de la table. Ce nom est en fait la clé primaire de la table, cette clé est un entier.

Cette fonction chercherait dans la BDD Mysql le plus petit entier libre supérieur à 0.

Exemple :
si dans la table on a : 0,1,2,4,5,
la fonction retourne 3.

Bien sur j'aimerais une fonction optimiser,pour que je n'ai qu'une requete à faire à la BDD.