


Les diagrammes MCD/MLD/MPD ci-dessus datent du début du projet. Plusieurs évolutions ont été nécessaires en cours de développement, listées ici avec leur justification.
Une matière est désormais une entité à part entière, et plus stockée directement dans cours.
| Colonne | Type | Description |
|---|---|---|
| id | int | clé primaire |
| nom | varchar | nom de la matière |
| user_id | int, FK vers users | formateur rattaché à cette matière |
| timestamps | datetime | created_at / updated_at |
Pourquoi ce changement : au départ, cours.matieres était une chaîne de texte libre. Cela ne permettait pas de relier une matière à un formateur précis, ni de réutiliser une même matière sur plusieurs cours sans ressaisie. La table matieres corrige ces deux problèmes.
La colonne matiere a été supprimée et remplacée par matiere_id (clé étrangère vers matieres).
| Colonne | Type |
|---|---|
| formation_id | int, FK vers formations |
| matiere_id | int, FK vers matieres |
Rôle : relation many-to-many entre formations et matieres, pour définir quelles matières sont disponibles pour quelle formation (utilisée notamment pour filtrer dynamiquement les matières proposées lors de la création d'un cours selon la formation choisie).