Bonjour Wark07,
l'analyse c'est compliqué.
Félicitation en tout cas
J'ai bien compris "le domaine" .
Revois le concept 'entité'.
Car ton MCD , tu peux l'améliorer encore.
Il y a beaucoup trop de "table" et de "cardinalité".
Le MCD c'est avant la création de la base de données.
C'est une représentation, c'est le 'plan relationnel' de ta structure de données. ( un dessin ).
Ce MCD que tu a montré, me fait pensé + à une GUI. Une Interface Homme Machine, donc ton logiciel avec les cases à remplir et à cocher...
Le problème que ça posera, c'est que avec ton 'design' tu va péter un cable ( c'est pas un gros mot ) quand tu écrira tes requetes SQL.
Dit autrement, tu va te retrouver avec des requetes SQL en pagailles et en surnombres , avec des 'JOIN' et des 'WHERE' aboslument infectes, et inabordables.
10h travaillées contre 1h utile... ( gaffe , gaffe , gaffe !!! ).
Mais de lire ton MCD , j'ai bien compris le besoin.
Et ça c'est déjà signe que tu a compris ce que demandais ton projet. Et moi aussi lors de la lecture.
Je sais pas ce que tu sais pour faire l'analyse,
mais tu a 'migré' bien trop souvent des données,
et tu a 'inventé' des relations qui étaient facultatives. ( l'un provoquant l'autre ).
Pour l'image , tu a écrit ton MCD en 'effet boule de neige / masse critique'.
tu dois reprendre ton dictionnaire des données.
c'est "la liste des données de ta BDD".
Et
- reconsidérer tes entités : remettre en bonne place, réorganiser + simplement tes données.
Une chose à faire lors d'un raffinage :
- monter en abstraction la sémantique, si un gain est évident.
comme par exemple :
boulanger / ingénieur / technicien :: peut devenir 'METIER'
ou bien ,
client / eleve / prof :: devient l'entité 'PERSONNE' ( avec une colonne : statut.. )
Et félicitations pour cette analyse claire et synthètique !
beau travail ! ( car tout a été compris dès lecture ... preuve d'application au travail )
================================
Pour la notion 'ne pas mettre dans la base de données les données calculées',
c'est une embûche,
autant 'conserver le détail' est important ( si c'est le travail demandé ),
et il ne faut pas négliger que si le besoin exiges une table 'bilan' ... les données calculées seront dans ta base de données, par besoin du cahier des charges.
Un exemple :
les pays du monde et la démographie :
Les habitants de chaque pays ne sont pas comptés un par un ( pour la structure de données ).. et pour chaque année, ou chaque comptage.
=================================
pour revenir à ton projet :
BIathlon / séance / tir ...
en considérant le peu de données nécessaires,
tu pouvais tout mettre dans la même table par exemple : 'EPREUVE' ,
exemple "rapide"
car une table de 12 colonnes, ou 3 tables de 4 colonnes ... de données.
c'est des clé étrangéres et primaires en moins ...
Une clé qui est réécrites dans plusieurs tables, c'est finalement des 'doublons de données'.
Alors que les données étaient -distinctes, facilement -isolées, chacunes à leurs places. sans confusion.
On finit par avoir 1 table avec 9 colonnes ( sans redondances inutiles ).
======================================
Quand tu écrit ton MCD :
reperes les élements IMPORTANT :
( c'est souvent PERSONNE / ELEVE / CLIENT .. dès qu'il y a des noms et des prénoms ... )
compte le nombre de tes entitès ...
et comme sur une pendule, minuit / 3 heures / 6 heures / 9 heures ...
tu disposes de nombreux choix pour placer tes entités sur ton MCD.
Tu peux partir par le centre de ta 'feuille'
ou par un coté ... 'haut bas gauche droit'
Regarde ton MCD , t'aurai pas commencé par PE_Personne ?
t'a écrasé les sous-types immédiatement .... ( c'est ça ? ) dans le MCD.
Là c'est un tuto : organiser un schéma , composer un diagramme ... etc ... comme 'science' ... ( en vidéo Youtu ?? )
Et si tu le fait avec PE_Personne à gauche de ta feuille ?
et que tu écrit ton MCD , et 'branches' et 'niveaux / sous-branches' ? de la gauche vers la droite ?
c'est mieux ou pas ?
Message édité par djinto le 29-05-2021 à 10:54:28
---------------
Nom : Prénom : Age : Adresse : Ville : Code Postal : Num Trois Tel