Database ======== Metier schema scripts Apps Enrichissement Extranet Backoffice Odea Flux Notes Conventions =========== Pour une industrialisation des projets, avec la librairie Doctrine. Voir les règles de principe dans la documentation - http://doctrine-orm.readthedocs.io/projects/doctrine-orm/en/latest/reference/basic-mapping.html - http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/best-practices.html Nom des tables -------------- Les règles de nommage permettent d'établir des profils de sauvegarde suivant le nom, de créer des groupes de tables, ... - Tous les caractères en minuscules - Table du même groupe, utiliser le séparateur "_" ex : clients, clients_service, clients_utilisateurs - Particularité des tables, utiliser un suffixe - _old : Version précédente - _tmp : Temporaire, version suivante - _bak : Backup - _mvt : Suivi des mouvements pour garder les suppressions, modifications, ... - _user : Enregistrer les actions utilisateurs sur la table (en relation avec _mvt) ex : etablissement, etablissements_old, etablissements_tmp, etablissements_bak Nom des colonnes ---------------- - Faire simple - Eviter les majuscules, caractères spéciaux, donc les noms composés - Ne pas préciser le type de données dans le nom (ex: date) Nom des index ------------- - PRIMARY Pour réaliser les traitements unitaires sur les données, il est important d'avoir un index primaire sur toutes les tables afin de selectioner plus rapidement la ligne lors de SELECT, INSERT, UPDATE - idx{Name} Index pour l'amélioration des requêtes SELECT - idu{Name} Index unique pour eviter les doublons Performance =========== - Autres base de données - Envisager l'utilisation de MongoDB dans notre processus Métier