Le Modèle Logique de Données (MLD) constitue une
étape clé de la conception d'un système d'information. Il
permet de structurer les données à manipuler en respectant les
exigences fonctionnelles exprimées lors de la phase d'analyse. Le MLD
traduit les concepts métiers identifiés dans le Modèle
Conceptuel de Données (MCD) en éléments techniques
compatibles avec un système de gestion de base de données
relationnelle (SGBDR), ici PostgreSQL.
Ce modèle sert de fondement à la
génération ultérieure du Modèle Physique de
Données (MPD), qui correspond à la structure finale
implémentée dans la base.
· Les entités métiers (par exemple :
Utilisateur, CV, Offre, Analyse) sont transformées en tables
relationnelles.
· Les attributs de ces entités deviennent les
colonnes des tables, avec un typage explicite adapté (exemples : VARCHAR
pour les chaînes de caractères, INTEGER pour les entiers, BOOLEAN
pour les booléens, TIMESTAMP pour les dates).
· Les identifiants des entités deviennent des
clés primaires (PK), souvent nommées id ou identifiant, avec
auto-incrément ou UUID selon la stratégie choisie.
· Les associations entre entités sont
modélisées soit :
§ Par des clés étrangères (FK),
lorsqu'il s'agit de relations de type 1,N ou N,1 (ex : un CV appartient
à un seul utilisateur),
§ Ou par des tables d'association
supplémentaires, lorsqu'il s'agit de relations N,N (ex : un CV peut
correspondre à plusieurs offres, et une offre peut recevoir plusieurs
CVs).
· Les contraintes d'intégrité
(unicité, non-null, relations référentielles) sont
définies afin de garantir la cohérence et la validité des
données.
Exemple d'application :
Pour ton système, les entités clés suivantes
deviennent des tables principales du MLD :
· Utilisateur (CustomUser) ? Table utilisateur
· ProfilEntreprise ? Table entreprise
· ChercheurEmploi ? Table chercheur_emploi
· Offre ? Table offre
· CV ? Table cv
· Analyse NLP ? Table analyse_cv (si
séparée)
· Notifications ? Table notification ou email_log
61
Chaque table contient une clé primaire (ex : id), des
colonnes typées (ex : phone_number : VARCHAR(13), is_verified :
BOOLEAN), et des clés étrangères (ex : user_id,
entreprise_id).
Les relations complexes comme le lien CV et Offre sont
représentées par une table d'association (ex : cv_offre) avec
deux clés étrangères pointant respectivement vers la table
cv et la table offre.
Ce modèle permet d'assurer la persistance des
données, la normalisation, l'intégrité et
l'extensibilité du système, tout en facilitant
l'implémentation avec un ORM comme Django Models.