Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
778 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

[SQL SERVER] Primary key de type char/varchar

n°1004233
FlorentG
Unité de Masse
Posté le 07-03-2005 à 23:26:11  profilanswer
 

Reprise du message précédent :
C'est bon à savoir tout ça :)

mood
Publicité
Posté le 07-03-2005 à 23:26:11  profilanswer
 

n°1004234
ipahc
TNZ pue du bec
Posté le 07-03-2005 à 23:28:40  profilanswer
 

Arjuna a écrit :

Bah ça dépends ce que tu gères. Evidement, si c'est des infos volatiles, faut passer par une clé calculée. Mais si c'est quelquechose de fixe, ça sert à rien, mise à part alourdir.
 
Imagine, t'as un forum. Le login est unique, tu ne peux pas en changer. Ben utiliser un auto-incrément comme clé primaire (et donc comme FK) va t'oblier à faire des jointures à toutes les sauces pour afficher l'auteur de chaque post... C'est pas très malin étant donné que tu ne veux récupérer que son login.
 
C'est ni plus ni moins la solution adoptée par Joce lorsqu'il a codé ce forum. Comme tu vois, il marche plutôt bien, y'a pas de problème de perf. Pourtant, en 1999 quand j'ai découvert ce forum, et que Joce, très présent à l'époque, m'a expliqué comment il avait codé le forum, j'ai cru avoir une attaque. Force est de constater que ces choix (auxquels je n'adhère pas tous, encore maintenant) n'était pas mauvais, loin de là.


 
 
Je ne gère pas un forum, donc je ne m'engagerai pas là dessus. Par contre je suis incapable de dire qu'une info sera fixe, même un login sur mon soft (ex du mariage) et me trimballer des clusters de 20 caractères :/  
 
Il reste à voir si une jointure sur un entier avec index est vraiment plus couteuse que parcourir des champs d'index trop gros... j'en sais rien. (mais avec le chouette optimiseur de requete de sql server, je ne pense pas, du moins c'est ce qu'on nous a fait entendre ;) )
 
Tiens, il tourne sous quel sgbd le forum ?


Message édité par ipahc le 07-03-2005 à 23:35:04

---------------
"Kattthyyyyy, r'garde comment je prends trop bien de l'angle sa mère !" - Sat08 2004
n°1004246
ipahc
TNZ pue du bec
Posté le 07-03-2005 à 23:33:43  profilanswer
 

Arjuna a écrit :

Sinon, j'ai travaillé pendant des mois (deux ans en fait) sur un ERP, dont un grand nombre de clés étaient aplhanumériques. Les pays ou les monnaies par exemple, faut être buté pour ne pas reprendre les codes alphanumériques ISO, qui sont parfaitement lisibles !
Et je peux t'assurer que ces données sont loin d'être les seules alpha-numériques. Même certaines informations, telles que le numéro client, même si elles suivent, selon leur type, différentes séquences (bah ouais, t'as l'air fin avec un auto-incrément quand tu dois gérer plusieurs plages à la fois), sont en réalité des varchar(12). Ce qui est bien pratique, c'est que si un client (type "CLI" ) sera en effet numérique (avec 0 facultitatifs, à nouveau, pas terrible quand tu te bases sur un champ entier), les dépots (qui sont gérés de la même façon que les clients) sont nommé par leur nom juridique (ça change pas tous les jours).
 
En tout cas, cet ERP bouffe plusieurs dizaine de milliers de ligne par jour en écriture, et plus de 1000 personnes l'utilisent simultanément, et personne se s'est jamais plaint ni de sa lenteur ni du bordel dans les données.
 
Evidement, les écrans permettant de créer des devises ou des dépôts sont fermés aux utilisateurs... Une clé alphanumérique, tu n'en fait que pour les données de référence évidement, pour le reste, c'est une clé calculées (et rien n'empêche d'en faire une variable alphanum... Quand tu reçois un bon de commande avec marqué "CDE0158032005", ça ressemble à tout sauf à un autonumber, et pourtant, personne n'a rien tapé pour générer cette clé)


 
 
 
Et un jour, on te dit....
"j'aimerais bien que la reference du bon commande soit finalement 20 caractères, car j'aimerais ajouter les initiales de mon chien et l'année de naissance de ma belle mère" ....Boum !
 
avec une clé primaire en entier...t'es pas emmerdé du tout ;) et le parcours de tes indexs est plus rapide (ok, c'est pas transcendant :D).
 


---------------
"Kattthyyyyy, r'garde comment je prends trop bien de l'angle sa mère !" - Sat08 2004
n°1004248
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-03-2005 à 23:35:05  profilanswer
 

Etant donné qu'un numéro de facture est un élément juridique, il est rigoureusement interdit par le lois de le changer, donc ça poste aucun problème, tu changes la procédure qui génère le numéro des prochaines factures (et toc ! :D)

n°1004250
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-03-2005 à 23:35:46  profilanswer
 

T'ain je fais plein de fautes, faut que j'aille me coucher moi :sleep:

n°1004263
ipahc
TNZ pue du bec
Posté le 07-03-2005 à 23:46:18  profilanswer
 

Arjuna a écrit :

Etant donné qu'un numéro de facture est un élément juridique, il est rigoureusement interdit par le lois de le changer, donc ça poste aucun problème, tu changes la procédure qui génère le numéro des prochaines factures (et toc ! :D)


 
 
:D
 
T'as compris l'idée ;)
 
Allez, zop, dodo pour moi aussi. Discussion interessante en tout cas :)

n°1004266
FlorentG
Unité de Masse
Posté le 07-03-2005 à 23:46:53  profilanswer
 

Oui, ça manque ce genre de discussions hautements informatives :)


Message édité par FlorentG le 07-03-2005 à 23:46:59
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Fonction sur SQL server 7probleme dans requete SQL
Sauvegardes Bases SQLproblème requete Sql avec variable
Comment cacher une liste de type <OPTION> ... ?Fonction qui retourne différent type de valeur.
Probleme de date avec les jours travaillé ou non sour sql serverAutoincrement sur Adaptiver Server Anywhere 7.0 ??
Variables de noms dans un type record 
Plus de sujets relatifs à : [SQL SERVER] Primary key de type char/varchar


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR