Je prolonge une discussion, évoquant l'importance du choix
des préfixes et suffixes de noms de table,
des préfixes et suffixes de noms de champ,
des mnémoniques de noms de champs
des désignations de noms de champs
Envoyé par IFA2377Question fondamentale en matière d’écriture : sa nécessité
À propos de tes nouveaux noms de données…
Je tiens à mes préfixes (typologiques) devant chaque mnémonique de colonne.
J'y ajoute systématiquement la désignation en clair (dans la légende, sous access, ou en description, pour les autres SGBD).
Lors notamment de requêtes depuis des sources externes, je ne me pose pas 36 questions à enquêter sur la concordance de type entre la colonne source et la colonne cible.
Préfixer un nom de donnée d’une lettre représentant sa typologie pollue les développements :
en ajoutant inutilement deux caractères au nom de donnée,
en ajoutant une contrainte de gestion de tes développements,
en singularisant ta programmation non conventionnelle,
en contraignant une tierce personne à essayer de comprendre ta démarche alambiquée.
Des problèmes de concordance typologique entre une colonne source et une colonne cible se règlent au cas par cas, on est sensé savoir ce que l’on fait, quelles données on manipule.
Lorsque tu nommes tes données « kn_pers », « ak_matri », « kn_cm », je m’interroge à propos de ton « k » et ce n’est pas normal de devoir s’interroger.
À propos de tes noms de tables…
Lorsque tu nommes ta table « t_pers_prs », je m’interroge sur le préfixe « t_ » et le suffixe « _prs » qui semble être un alias de "pers". Si le préfixe « t_ » signifie « table », je ne vois pas l’intérêt. Quant-au suffixe « _prs », qu’apporte-t-il à part un questionnement pour une tierce personne ?
De même pour ta table « tr_grade_tgd2 » que tu cites dans ton autre discussion. Je présume que ton préfixe « tr_ » signifie « table référente ». Même remarque pour ton préfixe « _tr » et ton suffixe « _tgd2 ».
... Question fondamentale en matière d’écriture : sa nécessité.
Cela dit, je ne veux pas passer pour un donneur de leçons. Je fais part simplement de mes propres bonnes pratiques qui ont fait leurs preuves. Je les évoque car j’ai pu constater que le sujet n’est pas abordé dans les formations (IUT), comme s’il appartenait à chacun de se les inventer. J’ai pu le vérifier lors d’un DUT en formation permanente. On y enseigne la technicité, pas le savoir faire. J’ignore ton cursus formation mais il semble que ce soit toujours vrai.
Jean-Philippe AMBROSINO _ conventions typographiques du code.pdfEnvoyé par Tony ARCHAMBEAUBonnes pratiques
Voici une liste de bonnes pratiques qui s’appliquent à la fois pour le nommage des tables et des colonnes:
Ne pas utiliser les mots réservés. Par exemple, il faut éviter de nommer une colonne “date” car ce mot est déjà utilisé
Documentation MySQL 5.6 : mots réservés
Documentation PostgreSQL 9.2 : mots clés SQL
Documentation SQL Server 2000 : mots réservés
Ne pas utiliser de caractères spéciaux
Noms de tables
Voici une liste de bonnes pratiques :
Utiliser un nom représentatif du contenu
Utiliser un seul mot lorsque c’est possible
Privilégier le singulier (mais c’est parfois un grand débat …)
Penser à des noms génériques et envisager les futurs évolutions. Par exemple une table “client” qui pourrait aussi contenir les prospects et commerciaux devrait plutôt s’intitulé “utilisateur”
Préfixer les noms des tables
Permet d’éviter d’utiliser accidentellement des mots réservés.
Permet d’éviter les conflits lorsqu’il y a plusieurs logiciels similaires sur une même base de données (par exemple, si 2 logiciels utilisent chacun une table intitulée “utilisateur”).
Utile pour séparer facilement les tables associée à un système ou à un autre. Par exemple si un blog WordPress et une boutique e-commerce Prestashop sont placé sur une même base de données, le blog aura des tables commençant par “wp_” tandis que la boutique aura des tables commançant par “ps_”.
C’est plus simple pour ré-installer un backup. Par exemple, pour réinstaller une sauvegarde du blog, il est possible d’ajouter des tables commençant par “wp2013_” puis de modifier le code de l’application pour tout migrer d’un coup.
Sur des gros projets ça peut être pratique pour que toutes les tables associées aux utilisateurs commence par exemple par “user_”, toutes celles concernant les produits par “product_” et ainsi de suite.
Noms de colonnes
Voici la liste de bonnes pratiques :
Préfixer toutes les colonnes de la même façon pour chaque table. C’est beaucoup plus pratique lorsqu’il convient d’effectuer des jointures.
Dans le cas d’un site à vocation multilingue : indiquer la langue et la zone géographie pour les champs alphanumériques (fr_fr pour le français de France, fr_ca pour le français du Canada, fr_be pour le français de Belgique …). C’est extrêmement pratique si un jour une application doit devenir multilingue. Si la base de données doit s’internationaliser il suffira d’ajouter une colonne supplémentaire avec les traductions.
Frédéric BROUARD _ normalisation des noms des objets des bases de données.pdf
Partager