m1ckros a écrit : Pour info, en informatique de gestion, il est assez courant de différencier l'identifiant technique (celui sur lequel on fait pointer les foreign key) de l'identifiant fonctionnel qui lui, est censé être naturel pour l'utilisateur. L'id technique est censé ne jamais changer tandis que l'id fonctionnel lui, peut être modifié.
Tout comme l'id technique, l'id fonctionnel se doit d'être unique pour, par exemple, s'assurer qu'un recueil qu'on essaie d'insérer en base de données n'existe pas déjà. Ça reste logique pour l'utilisateur, il ne comprendra pas s'il voit 2 recueils avec un code à 3001, il lui faut un moyen de les différencier. Suffixer avec [A]/ est une solution.
En clair un id technique peut ressembler à : 49042c54de64a1e9bf0b33e00245660ef92dc7bd
Alors que l'id fonctionnel correspondant est : 3001[A]
Pour le tri, si tu as les deux notions, tu pourras être plus souple : trier en fonction de l'id (pour adopter la philosophie jusqu'au bout, il faudrait plutôt créer une colonne "tri", pour numéroter, pour éviter d'avoir à changer la valeur de l'id technique le jour où tu voudras changer l'ordre) tout en affichant 3001[A] et 3001 à l'utilisateur.
Bien sûr, ça demande un peu de développement.
Je n'ai pas trop insisté sur ce codage avec A et B, mais tu vois bien que si l'on trie cette donnée, on va avoir un problème.
Exemple :
Ordre de parution des recueils (exemple fictif) :
3005
3024
3057
3152
3007
3024
3212
Ici, On a un problème car le 3024 a deux versions. Donc on appelle A la première et B la seconde et on trie.
Le résultat est :
3005
3007
3024A
3024B
3057
3152
3212
Ce qui n'est plus du tout l'ordre de parution. Raté.
Les recueils ne sont pas datés. Donc on ne peut mettre une année, si c'était suffisant.
Les fascicules inclus ne sont pas toujours dans l'ordre des numéros, donc on ne peut pas mettre (par exemple) le numéro du 1er fascicule.
Je souhaitais présenter les recueils dans l'ordre de parution, sans être obligé de les saisir dans l'ordre et, manuellement, de gérer un ordre de tri qui serait encore une autre information à traiter dans tous les cas. Vu la quantité de données à traiter, j'ai préféré une technique avec quelques translations.
C'est ce qui figure dans la Database et permet de présenter les recueils dans l'ordre.
En fait, puisque la constitution des pages se fait dans un mode programmé (mon PHP), il suffit que, pour la donnée imprimée, je l'identifie d'abord comme un recueil Arédit, puis que je localise le n° d'album et que j'applique la mécanique inversée pour détricoter le numéro.
Mais je ne suis pas certain que cela serait vraiment plus clair.
En fait, je ne suis pas partisan de prendre l'utilisateur pour un idiot. Dans une situation complexe, si une solution raisonnable est trouvée, il vaut mieux dire qu'il y a des difficultés, expliquer comment on les a résolues et pourquoi on a fait comme ça.
Celui qui cherche un recueil 502 sera content de savoir qu'il en a existé 3 ou 4, et qu'il ne doit pas se ruer sur le premier qu'il trouve sans même vérifier ce qu'il y a dedans. Et il n'y a pas que pour Arédit. N'est-ce pas jmrazer ?
Merci Mickros pour tes détails. Les bases de données n'ont pas trop de secret pour moi, je fais de l'informatique depuis 1970 ...
Dans la Database, la 'référence' indiquée en deuxième colonne des pages série, est l'identifiant technique. Les numéros sont attribués dans l'ordre de saisie et ils ne changent pas. Quand j'étais libraire, je m'en servais comme référence d'article, portée sur les étiquettes.
Dans mon SGBDR, chaque numéro permet l'accès direct à une ligne d'une table. C'est très rapide.
Si l'on doit travailler par approximation, ou sur une donnée non triable, il faut faire du Start Browse. C'est très lent. Quand j'ai démarré l'informatisation de la Database (vers 1985), il y avait des limites en taille de données et en puissance de processeur. il reste encore des
traces de ces économies forcées.
L'identifiant fonctionnel sert aussi, quand une confusion est impossible, à simplifier le référencement. Exemple Akim(1)/25. Exemple Silver Colt(2)SP04/1965. Exemple Panache A12. Tout le monde comprend ce type de référence dès que l'on a tripoté un peu de PFs.
Mais pour les recueils, ç'est insuffisant ...