Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
informatique:sgbd-best-practises [2020/05/12 16:29] – créée bertrand | informatique:sgbd-best-practises [2024/02/20 10:04] (Version actuelle) – [Les requêtes] bertrand | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | |||
====== Best practises Bases de données ====== | ====== Best practises Bases de données ====== | ||
- | Début 2020, j'ai questionné la liste de diffusion RBDD à propos des bonnes pratiques pour la création/ | + | Début 2020, j'ai questionné la liste de diffusion RBDD à propos des bonnes pratiques pour la création/ |
[[http:// | [[http:// | ||
+ | <note important> | ||
Afin de l' | Afin de l' | ||
Ligne 10: | Ligne 12: | ||
==== Des constantes ==== | ==== Des constantes ==== | ||
- | Le nom des bases de données, des schémas, des tables et des attributs doit être: | + | === Le nom des bases de données, des schémas, des tables et des attributs doit être === |
* en minuscule | * en minuscule | ||
* au singulier | * au singulier | ||
Ligne 18: | Ligne 21: | ||
Il doit être parlant sans être verbeux. L’utilisation d’abréviation est déconseillée. | Il doit être parlant sans être verbeux. L’utilisation d’abréviation est déconseillée. | ||
- | Les schémas, les tables et les colonnes porteuses d’informations doivent être commentés. | + | === Les schémas, les tables et les colonnes porteuses d’informations doivent être commentés |
Le commentaire doit citer l’**unité de mesure, pour les données numériques** | Le commentaire doit citer l’**unité de mesure, pour les données numériques** | ||
- | Des options | + | === Des options |
- | * Le nom des objets et le commentaire doivent être en anglais\\ | + | === Le nom des objets et le commentaire doivent être en anglais |
- | + : langue internationale\\ | + | {{:informatique: |
- | - : langue non maitrisée par tous (les nuances mises dans les commentaires peuvent être mal interprétées) \\ | + | {{:informatique: |
- | | + | |
- | + : porte sur une seule colonne et plus rapide pour l’indexation\\ | + | === La clef primaire doit être de type « serial » et nommée « table_id » === |
- | - : non significative et l’unicité de l’enregistrement est à la charge du développeur\\ | + | {{:informatique: |
- | | + | {{:informatique: |
- | + : utilisation de jointure de type join using (table_id) mais cela peut rend plus difficile la compréhension du contenu\\ | + | |
- | - : utilisation de jointure de type join using (table_id) est impossible\\ | + | === La clef étrangère doit avoir le même nom que la clé primaire de la table référente (table_id) |
- | | + | {{:informatique: |
- | + : plus facile de les repérer\\ | + | {{:informatique: |
- | - : peu d’intérêt de les repérer\\ | + | |
- | | + | === Le nom des vues doit être préfixé par « v_ » === |
- | + : lecture des requêtes facilité (absence d’ambiguïté)\\ | + | {{:informatique: |
- | - : nom à rallonge\\ | + | {{:informatique: |
- | | + | |
- | + : lecture des requêtes facilité (absence d’ambiguïté) et nom court\\ | + | === Le nom des attributs doit être préfixé par le nom de leur table et séparé par des _ s'il y a une ambiguïté possible avec d' |
- | - : pas toujours facile de trouver une abréviation parlante\\ | + | {{:informatique: |
+ | {{:informatique: | ||
+ | |||
+ | === Le nom des tables doit être aliaisé par une abréviation | ||
+ | {{:informatique: | ||
+ | {{:informatique: | ||
===== Les requêtes ===== | ===== Les requêtes ===== | ||
L’utilisation de script SQL doit être privilégiée. Il doit être commentés et contenir les entêtes minimum suivantes (auteur / date de création / date de dernière mise à jour / utilité). Il doit être archivé, dans un gestionnaire de version de code si possible, ou dans un système de sauvegarde au moins journalier | L’utilisation de script SQL doit être privilégiée. Il doit être commentés et contenir les entêtes minimum suivantes (auteur / date de création / date de dernière mise à jour / utilité). Il doit être archivé, dans un gestionnaire de version de code si possible, ou dans un système de sauvegarde au moins journalier | ||
+ | |||
+ | === Utilisation des alias dans les requêtes complexes === | ||
+ | {{: | ||
+ | * facilite la lecture de la requête | ||
+ | * indispensable si la même table est utilisée plusieurs fois dans la même requête (relations multiples) | ||
+ | * les alias des tables sont utilisables dans les WHERE, HAVING et autre | ||
+ | {{: | ||
+ | * compromis à trouver entre longueur de l' | ||
+ | * les alias des champs ne sont pas utilisables dans les mêmes WHERE, HAVING et autres | ||
+ | |||
+ | ===== Références ===== | ||
+ | * [[wpfr> | ||
+ | * [[wpfr> | ||