Les applications disposent de plusieurs tables, chacune liée à un domaine spécifique.
Une bonne pratique consiste à organiser la base de données par modules, alignés sur ces domaines.
Concepts
- Base de données modularisée : base de données divisée en modules qui représentent des zones spécifiques du système.
- Schéma : Ensemble d'objets dans une base de données, organisés de manière logique.
- Objets de schéma : tables, vues, déclencheurs et fonctions qui font partie du schéma.
Équivalence entre module et schéma
- L'option appropriée pour représenter les modules est l'utilisation de schémas.
- Chaque module est représenté par un schéma dans la base de données.
- Chaque schéma contient ses propres objets, tels que des vues, des tables, des déclencheurs et des fonctions.
- Lors de la création de requêtes complexes, il est crucial de prendre en compte le schéma dans lequel se trouve la table.
Les étapes de création
- Créez une base de données.
- Configurez les paramètres initiaux.
- Créez les schémas nécessaires.
- Créez des tables, des vues, des déclencheurs et des fonctions dans chaque schéma.
- Si nécessaire, définissez des règles d'accès spécifiques pour chaque schéma.
Initialisation
- Lisez les scripts SQL de chaque répertoire.
- Vérifiez si les scripts existent avant de les exécuter.
- Exécutez les scripts dans le bon ordre.
- Exécutez les scripts au sein d'une transaction.
- Démarrez les scripts à l'ouverture de l'application.
- Enregistrez les journaux de progression et d'erreurs.
Avantages de la création de schémas
- Organisation
- Modularisation de la Base de Données
- Séparation des responsabilités
- Navigabilité
- Réutilisabilité du code
- Sécurité renforcée
- Collaboration améliorée
Défis
- Complexité des consultations.
- Verbosité dans le Code.
- Maintenir la cohérence entre les modules
- Normalisation et cohérence de la nomenclature.
- Formation d'équipe.
Code source :
- https://github.com/ortizdavid/golang-modular-software
LinkedIn : https://www.linkedin.com/in/ortiz-david
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!