Développeurs ! Quelles sont vos conventions en termes de base de données ?
La programmation, et dans mon cas le développement web, est remplie de conventions en tout genre. Ce sont des accords sur des règles à respecter tant dans l’écriture de code que dans le “nommage” des tables et champs de bases de données.
Il n’existe pas de règles officielles, chacun est libre, selon ses acquis ou ses habitudes de choisir telle ou telle convention, ou d’en créer une particulière.
C’est pour cela que j’aurai aimé avoir l’avis de développeurs confirmés, étudiants ou bricoleurs du web, peu importe.
- Quelles sont vos règles et pourquoi ? Quels noms donnez vous à vos tables, vos champs ?
- Faut-il mettre au pluriel le nom de la table des “Categories” ?
- L’identifiant d’une table (et plus généralement tous ses champs) doit-il est suffixé par le nom de la table ?
- Un identifiant d’un produit de type “id_produit” devrait-il être au singulier ou au pluriel ?
- Undersore, tiret ou concaténation entre les mots d’une table ?
Merci de laisser vos conseils avisés en commentaires !

septembre 12th, 2007 at 09:56
je suis pas un pro
1) des noms explicites, avec un préfixe dans certains cas (pour préciser soit l’application soit le type)
2) Non
3) plutôt un ptit préfixe
4) id_produit est un entier, pourquoi tu parles de pluriel ?
pour stocker des mots, je les mettrais plutôt au singulier
(et ensuite moteur de recherche intelligent qui pense à enlever des s en trop)
5) espace
nan j’déconne, underscore
septembre 12th, 2007 at 12:32
Les frameworks imposent des conventions qui permettent de gagner énormément de temps… regarde du côté de Cake/Symfony/Zend, c’est de bonnes pistes
septembre 12th, 2007 at 13:25
Merci de vos commentaires.
piR > pour le point 4) je parle du nom du champ et non pas ce qu’il contient.
JY > Oui depuis quelques temps je me base sur l’article de cakephp (je l’avais transféré à Vincent
:
http://www.cakepourtous.org/7/les-conventions-en-cakephp
septembre 12th, 2007 at 13:54
Travaillant dans le web depuis un moment, je n’ai toujours pas de rèlges mais je nomme souvent de la même façon.
1) Les tables sont nommées en fonction de leur utilité. Un préfixe est ajouté ( dans le cas de plusieurs tables) pour regrouper les tables de la même application.
2) J’aime bien mettre les choses au pluriels mais ce n’est pas une bonne habitude, le singulier est préférable.
3) Tous mes identifiants auto-incréments se nomme généralement ID_ le nom de la table. Il peut même y avoir le préfixe de l’application. J’ai eu le cas ou pour éviter une incompréhension avec un champ similaire d’un autre table lors de jointures.
4) singulier
5) underscore
septembre 14th, 2007 at 19:59
Comme le souligne Pir utiliser des noms explicites, ne pas avoir peur de faire trop long (dans la limite du raisonnable) mais que le champ soit clairement reconnaissable. Pour la table au pluriel je dirais non, meme si ça n’as pas clairement d’importance, par contre pour le champ au pluriel j’ai tendance à mettre au singulier.
Utilisation du underscore .. Mais sinon niveau conventions, j’utilise la bonne vieille qu’on peut voir sur tes screenshots
id_blabla
nom_blabla
lib_blabla
Mais comme l’a souligné JY, Zend est bieng
Il dispose de toute sorte d’outil bien pratique, notamment pour l’appel et l’utilisation de procédure
septembre 17th, 2007 at 00:37
1. Pour le nom de mes tables elles suivent les noms données dans mon MCD (je concatène les nom et toujours en minuscule)
2. Pour le pluriel ça dépendra de ce qu’il y a dans la table (souvent je les mets au singulier car elle vont de pair avec une classe et dans ma logique ca reprensente l’occurence d’un objet).
3. Pour ne plus avoir de probleme de nom ambigus je rajoute devant tout les nom de champs le nom de la table (c’est long mais au moins j’ai plus de problème et a la relecture du SQL c’est plus parlant).
4. Si ma table s’appel categories, mon ID sera categorieId ou categorie_Id
5. Maintenant je concatène (avec une notation hongroise), sinon utilise l’underscore comme séparateur dans certain langage le tiret sera pris comme le moins signe mathématique moins.
PS : je prend aussi l’habitude de tout mettre en anglais (Nom de variables, fonctions, classes + SQL + Commentaires) c’est plus pratique pour les travaux de groupes.
octobre 2nd, 2007 at 21:12
Salut,
Tout d’abord je tenais à te dire que j’adore ton prénom et ton nom LoL Peut-être parce que j’ai les même, c’est ce qui m’a fait découvrir ton blog
Et aussi parce qu’on semble avoir les même passions.
1-Je suis un autodidacte, donc je n’ai jamais suivi de cours, donc je n’ai aucune convention et je le fait donc au filing. Le nom des tables est souvent composé avec le nom du script suivi + underscore + nom de la table. Exemple : script1_catégorie
2-Personnellement je le met au pluriels.
3-Oui, généralement je fais du genre id_produit, nom_produit …
4-singulier
5-Underscore.
Voilà…
A++
Cyril Lopez
octobre 2nd, 2007 at 21:41
Arf c’est donc toi qui est passé avant moi pour cette adresse gmail ! (C’est vrai qu’elle est belle
)
Merci pour vos commentaires à tous, et content que le blog te plaise Cyril !
novembre 23rd, 2007 at 09:59
Salut,
C’est vrai que chacun a des regles de nommages… plus ou moins conscientes, plus ou moins pratiques mais qui (heureusement) évoluent dans le temps..
les miennes sont (mais tu les connais déjà ;)) :
- pour les tables : prefixe+underscore+suffixe (ex : adp_articles). toujours au pluriel. les liaisons de tables sont de cette forme : adp_articlesCategories, adp_articlesCategoriesLangues
- pour les champs : nomDuChamp+underscore+suffixe de la table, sauf pour les id de liaison. (ex : id_articles, lib_articles, texte_articles, id_articlesCategorie)
Voilà
ensuite on peut mettre en place des fonctions et methodes génériques qui facilitent grandement le travail
@++
Siddhy