par
Cyrano » 07 juin 2005, 15:56
Je vais mettre un bémol là-dessus: mauvaise idée de gérer manuellement un champ de clé primaire: laisse donc faire MySQL. La clé primaire n'est pas une donnée, c'est un point de repère, point barre, il ne faut pas l'utiliser differemment. Ça permet de retrouver rapidement une donnée, de la mettre en relation avec les informations d'une autre table, mais ce n'est pas une donnée en rapport direct avec les données de la ligne correspondante.
Donc, si un champ est auto-incrémenté, c'est précisément pour ne pas à avoir à s'en soucier. Si tu as besoin d'un point de repère qui reflete le nombre d'articles dans l'ordre où ils ont été enregistrés, alors crée un champ supplémentaire en te disant qu'à chaque mise à jour ou modification de la table, il faudra mettre toute la colonne à jour pour chaque ligne si nécessaire.
C'est un peu inutile d«'autant qu'il y a des fonctions de tri qui te permettent de créer un numéro lors du traitement pour affichage, mais c'est un champ calculé que tu crées à la demande: par principe, on ne met JAMAIS de champ calculé dans une base. C'est un peu comme si on mettait une colonne "age" dans une table user. Les valeurs enregistrées dans cette colonne sont fausses dès le lendemain de l'enregistrement.
Je vais mettre un bémol là-dessus: mauvaise idée de gérer manuellement un champ de clé primaire: laisse donc faire MySQL. La clé primaire n'est pas une donnée, c'est un point de repère, point barre, il ne faut pas l'utiliser differemment. Ça permet de retrouver rapidement une donnée, de la mettre en relation avec les informations d'une autre table, mais ce n'est pas une donnée en rapport direct avec les données de la ligne correspondante.
Donc, si un champ est auto-incrémenté, c'est précisément pour ne pas à avoir à s'en soucier. Si tu as besoin d'un point de repère qui reflete le nombre d'articles dans l'ordre où ils ont été enregistrés, alors crée un champ supplémentaire en te disant qu'à chaque mise à jour ou modification de la table, il faudra mettre toute la colonne à jour pour chaque ligne si nécessaire.
C'est un peu inutile d«'autant qu'il y a des fonctions de tri qui te permettent de créer un numéro lors du traitement pour affichage, mais c'est un champ calculé que tu crées à la demande: par principe, on ne met JAMAIS de champ calculé dans une base. C'est un peu comme si on mettait une colonne "age" dans une table user. Les valeurs enregistrées dans cette colonne sont fausses dès le lendemain de l'enregistrement.