IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modélisation Discussion :

Future base de données élèves


Sujet :

Modélisation

  1. #1
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut Future base de données élèves
    Bonjour à toutes et tous

    Je souhaiterai créer sur Access une base de données de mes élèves de lycée.
    Il y a quelques années, j'ai pris quelques cours de développement et nous avons étudié MCD, MLD, ... et la mise en place d'une BDD SQL server. Mais tout est est loin et flou dans mon esprit.
    De plus, bien qu'aucune donnée confidentielle des élèves ne soient contenues, je préfère savoir ces tables sur mon ordi que dans le cloud (choix d'Access).

    Bref, j'ai élaboré mon MCD mais je ne suis pas trop sûre de moi

    Voici les règles :
    • 1 classe contient des élèves de même niveau
    • 1 classe est dirigée par un seul Prof Principal (PP)
    • 1 PP enseigne 1 seule matière principale
    • 1 PP peut avoir 1 adresse mail
    • 1 élève ne peut appartenir qu'à 1 seule classe
    • 1 élève possède un nom et un prénom
    • 1 élève peut avoir une fonction (délégué ou délégué adjoint)
    • 1 élève peut posséder une adresse mail
    • 1 élève ne peut faire partie que d’1 seul groupe et d’1 seul sous-groupe
    • 1 groupe se compose (d'élèves provenant) d’1 ou de plusieurs classes de même niveau (ex: 1Gr2=1ère S1-S2)
    • 1 groupe peut être partagé en sous-groupes (cours en demi-groupe par ex)
    • 1 groupe ou 1 sous-groupe peut avoir cours plusieurs jours par semaine
    • 1 jour peut être en semaine A ou en semaine B ou les deux
    • 1 jour peut être vide d’heure de cours
    • 1 groupe ou un sous-groupe peut être en classe à une ou plusieurs heures du jour (ex: 1Gr2 a cours le lundi en M2 et S3)



    Nom : MCD.png
Affichages : 2083
Taille : 25,1 Ko

    Avant que je ne passe au MLD, pourriez-vous me dire si vous voyez des erreurs ?

    Un grand merci d'avance.

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 601
    Points : 56 700
    Points
    56 700
    Billets dans le blog
    40
    Par défaut
    Hello collègue

    Quelques remarques en passant...

    PP---0,1---diriger---1,1---Classe
    En quelle circonstance un PP peut n'avoir aucune classe à diriger ?

    Eleve---0,1---contient---0,n---Classe
    Pareil, y a-t-il des circonstances où une classe ne contient aucun élève, ou qu'un élève n'appartient à aucune classe ?

    PP---1,1----enseigner---0,n---Matiere
    ça ne correspond plus aux réalités du terrain, un prof peut avoir à enseigner plusieurs matières (il a par contre une discipline de recrutement)

    Qu'est-ce que tu appelles NomSemaine (semaine A ou B ? Le numéro de la semaine ?). Idem, qu'appelles-tu nomJour (Lundi, mardi... ? Ou bien Mercredi 9 Novembre ?)

    1 jour peut être en semaine A ou en semaine B ou les deux
    Ou les deux ?

    Je ne vois pas bien à quoi va te servir cette base. Par exemple, si on sait qu'un groupe a cours tel jour, la base ne permet pas de savoir à quelle heure de cette journée a lieu le cours

    à suivre...

  3. #3
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Bonsoir f-leb et merci beaucoup pour tes remarques

    En réalité, à la plupart, je répondrai que je me suis posée la question à moi-même et ai opéré des changements après avoir regardé un tuto vidéo sur access.
    Le type préconisait de laisser la possibilité de laisser des tables vides. Comme par exemple, une classe sans élèves le temps de la remplir. Je me suis dit qu'il n'avait pas tort mais tu as l'air de penser le contraire.

    En quelle circonstance un PP peut n'avoir aucune classe à diriger ?
    Un prof peut demander à être PP mais ne pas l'être finalement.
    Mais c'est tiré par les cheveux.
    Par contre, si je mets 1,1 au lieu de 0,1 je vais me retrouver avec un couple 1,1 - 1,1 ce qui va poser problème non?

    Pareil, y a-t-il des circonstances où une classe ne contient aucun élève, ou qu'un élève n'appartient à aucune classe ?
    Voir ma première remarque, mais c'est vrai, ce n'est pas logique.

    ça ne correspond plus aux réalités du terrain, un prof peut avoir à enseigner plusieurs matières (il a par contre une discipline de recrutement)
    Là, par contre, non. Cette info me sert à moi pour savoir quelle est la matière principale d'un enseignant; genre M. Machin est prof d'hist-géo (c'est vrai qu'on l'oblige à faire plein d'autres trucs mais son cœur de métier reste l'hist-géo).

    Qu'est-ce que tu appelles NomSemaine (semaine A ou B ? Le numéro de la semaine ?). Idem, qu'appelles-tu nomJour (Lundi, mardi... ? Ou bien Mercredi 9 Novembre ?)
    NomSemaine: A, B, les deux
    NomJour: lundi, mardi, ...
    NomHeure: M1, M2,..., S1, S2, ...

    Je ne vois pas bien à quoi va te servir cette base.
    Cette base, elle va me servir à:
    1: rafraichir mes connaissances en me penchant sur un cas concret et que je connais bien
    2: automatiser un truc que je fais jusqu'à présent sous excel et qui me fait perdre du temps.
    Il s'agit des listes de mes élèves sur A4. Ces liste comportent:
    • En-tête: le nom du groupe et de la ou des classes, le ou les PP qui les dirigent et leur matière principale, le nombre d'élève, les jours de cours (ex lundi S4 (B) - mardi M4 - mardi M2)
    • Des lignes vides pour noter manuellement la date et le nombre d'abs ce jour-là
    • 3 ou 4 colonnes avec: n° incrément, Nom de famille, Prénom, éventuellement la classe si tous les élèves du groupe ne proviennent pas de la même classe.
    • 4 ou 5 colonnes vides pour y porter manuellement des infos pdt le cours

    Ces feuilles me permettent de voir qui était absent au cours d'avant, de noter des remarques sur les interventions des élèves... Je les photocopie en recto-verso au fur et à mesure de l'année. Il arrive souvent que je doive les refaire parce qu'un élève change de classe, de groupe ou de sous-groupe en cours d'année, qu'un autre arrive ou quitte l'établissement...
    Presque identiques (moins d'infos d'en-tête et + de colonnes) , j'ai des feuilles pour garder par devers moi une copie manuscrite des notes.
    3: cette base sera peut-être amenée à se développer si je me retrouve comme l'an dernier dans un établissement où le logiciel de notes ne me convient pas. J'avais alors conçu (avec de l'aide) des feuilles de notes trimestrielles assez poussées avec moyennes pondérées, bonus, ... Cela pourrait être intéressant d'essayer de refaire cela en mettant mes notes en BDD...

    Par exemple, si on sait qu'un groupe a cours tel jour, la base ne permet pas de savoir à quelle heure de cette journée a lieu le cours
    Euh... c'est moi qui vais remplir le formulaire, elle saura donc à quelle heure de la journée a lieu le cours, non?
    Le but c'est de ne plus devoir taper la même chose x fois.

    @ te lire et encore merci pour ton aide

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 601
    Points : 56 700
    Points
    56 700
    Billets dans le blog
    40
    Par défaut
    Bonjour

    Je réponds rapidement sur le dernier point...

    Tes groupes sont reliés aux jours, mais pas aux heures. On sait donc que tel groupe a cours tel jour, qu'il y a des créneaux horaires dans la journée, mais on ne sait pas à quelle heure de la journée le cours a lieu.

    Je pense qu'il faudrait une entité CreneauHoraire (id, jour, heure...) à relier aux groupes.

    Je repasserai probablement dans la soirée

    Bonne journée.

  5. #5
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Ah oui... tu as raison!

    Si je comprends bien, tu suggères donc de créer une table intermédiaire qui serait reliée à 3 autres: d'un part au Groupe, et d'autre part aux Jours et Heures. C'est bien ça?

    Je suis de sortie ce soir mais je repasserai ici dans la nuit ou demain matin.

    Bonne fin de journée à toi aussi !

  6. #6
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 601
    Points : 56 700
    Points
    56 700
    Billets dans le blog
    40
    Par défaut
    Citation Envoyé par StephBretagne Voir le message
    En réalité, à la plupart, je répondrai que je me suis posée la question à moi-même et ai opéré des changements après avoir regardé un tuto vidéo sur access.
    Le type préconisait de laisser la possibilité de laisser des tables vides. Comme par exemple, une classe sans élèves le temps de la remplir. Je me suis dit qu'il n'avait pas tort mais tu as l'air de penser le contraire.
    Ce genre de considérations (bassement matérielles) sur les tables ou les limites du langage SQL concernent le niveau logique/physique (MLD/MPD) et les traitements. Sur un MCD, on est à un niveau conceptuel, il n'y a pas de tables mais des entités-types, et on discute sur les intentions dans l'environnement du métier.

    Si tu ouvres ta base un jour et que tu découvres un élève sans affectation dans une classe mais qui a des cours programmés dans un groupe, c'est panique à bord, branle-bas de combat, coup de fil à l'administration. Qui c'est cet élève-là ? Une erreur ? Un simple oubli ? Il a démissionné ? Est-il toujours dans l'établissement ?
    Ce n'est pas normal, un élève doit appartenir à une classe.

    Dans ce cas, tu mets la cardinalité 1,1.

    De même, dans les emplois du temps, il n'est pas envisageable de faire cours à une classe sans élèves (quoique ce serait bien plus reposant)).

    Eleve---1,1---appartenir---1,n---Classe
    Après dans la pratique, tu fais comme tu peux avec Access et ses limitations, les formulaires, requêtes, etc. et selon le niveau de criticité. Tu interdis carrément la validation d'une classe tant qu'elle n'est pas remplie, tu relaxes un peu en mettant un simple avertissement "Attention, cette classe ne comprend aucun élève" ou tu ne fais rien de spécial si ce n'est pas critique pour toi. Mais au moins dans l'intention, tu es prévenue, faire cours à une classe sans élèves, ce n'est pas normal.

    La suite plus tard... Faut que je retrouve un logiciel pour faire les MCD. C'est quoi le tien ?

  7. #7
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 601
    Points : 56 700
    Points
    56 700
    Billets dans le blog
    40
    Par défaut
    Hop, un bout de MCD avec JMerise…


    Nom : MCD_GroupeCours.JPG
Affichages : 2294
Taille : 42,9 Ko

    La relation fléchée, SousGroupe----->Groupe, est une relation d’héritage : un sous-groupe est un groupe particulier, il « hérite » de ses propriétés, mais avec au moins une propriété supplémentaire : il a un groupe « parent ».
    Au niveau MLD, une solution est une table : SousGroupe(#idGroupe, #idGroupeParent, …) avec deux relations avec Groupe (une 1-1 et l’autre ∞-1). L’autre solution (de facilité) consiste à remonter toutes les propriétés du sous-groupe dans Groupe, il reste une seule table Groupe(idGroupe, #idGroupeParent), mais idGroupeParent peut rester à NULL et transformer la table en gruyère.


    Arf, je dois quitter…

  8. #8
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Salut f-leb,

    Sitôt levée, sitôt en train de lire tes réponses Mais il va me falloir un peu de temps pour les assimiler

    Déjà, mon logiciel de MCD c'est.... power point! On avait utilisé PowerAMC en cours mais l'installer pour un seul MCD...

    Citation Envoyé par f-leb Voir le message
    Ce genre de considérations (bassement matérielles) sur les tables ou les limites du langage SQL concernent le niveau logique/physique (MLD/MPD) et les traitements. Sur un MCD, on est à un niveau conceptuel, il n'y a pas de tables mais des entités, et on discute sur les intentions dans l'environnement du métier. [...]
    D'accord, tes explications sont convaincantes Je vais donc changer mes cardinalités en m'approchant davantage de mes premières intuitions et surtout en suivant tes conseils.

    Hop, un bout de MCD avec JMerise… [...]
    Cette partie-là est plus complexe... Il va falloir que je relise mes cours sur les relations d'héritage et que je laisse un peu mûrir.

    Merci pour tout! Je repasse sans doute ce soir.

  9. #9
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 601
    Points : 56 700
    Points
    56 700
    Billets dans le blog
    40
    Par défaut
    Bonsoir,

    Par exemple sous Access :

    Nom : MCD_GroupeCours02.JPG
Affichages : 2001
Taille : 32,8 Ko

    Voyons avec un petit jeu de données :

    Nom : MCD_GroupeCours03.JPG
Affichages : 1291
Taille : 21,1 Ko

    Un groupe "Groupe 1", avec deux sous-groupes "Groupe 1A" et "Groupe 1B" (les deux sous-groupes ont donc le groupe 1 comme parent).

    Et un petit emploi du temps vite fait :

    Nom : MCD_GroupeCours04.JPG
Affichages : 2046
Taille : 21,7 Ko

    Tout le Groupe 1 a cours le lundi en M2 les semaines A et B.
    Le sous-groupe 1A a cours le lundi en M3 et M4 les semaines A.
    Le sous-groupe 1B a cours le lundi en M3 et M4 les semaines B.

    Note que j'ai bidouillé l'affichage en mode feuille de données pour masquer les clés et afficher un contenu lisible.

    à+

  10. #10
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Bonjour f-leb,

    Alors, je m'y suis remise ce matin; j'ai la tête un peu plus claire à présent

    Citation Envoyé par f-leb Voir le message
    Hop, un bout de MCD avec JMerise…


    Nom : MCD_GroupeCours.JPG
Affichages : 2294
Taille : 42,9 Ko

    La relation fléchée, SousGroupe----->Groupe, est une relation d’héritage : un sous-groupe est un groupe particulier, il « hérite » de ses propriétés, mais avec au moins une propriété supplémentaire : il a un groupe « parent ».
    Au niveau MLD, une solution est une table : SousGroupe(#idGroupe, #idGroupeParent, …) avec deux relations avec Groupe (une 1-1 et l’autre ∞-1). L’autre solution (de facilité) consiste à remonter toutes les propriétés du sous-groupe dans Groupe, il reste une seule table Groupe(idGroupe, #idGroupeParent), mais idGroupeParent peut rester à NULL et transformer la table en gruyère.
    Suivant tes conseils, j'ai refait mon MCD

    Nom : MCD-2.png
Affichages : 1571
Taille : 22,7 Ko

    J'ai changé une chose parce qu'il me semblait qu'un groupe avait toujours cours à un moment ou à un autre:
    toi: GROUPE -- 0,N -- a cours -- 0,N -- semaine
    moi: GROUPE -- 1,N -- a cours -- 0,N -- semaine

    L'ensemble te paraît-il correct à présent ?

    Comme tu auras pu le remarquer, je suis lente... Tu vas beaucoup plus vite que moi
    Cet aprèm, je passe au MLD et j'espère faire aussi les tables des contraintes.

    Merci pour ton temps et ta patience et à bientôt

  11. #11
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 601
    Points : 56 700
    Points
    56 700
    Billets dans le blog
    40
    Par défaut
    ça m'a l'air de prendre bonne forme...

    Attention, la flèche est dans l'autre sens : Groupe<-----SousGroupe

    à propos des contraintes :

    Nom : MCD_GroupeCours05.JPG
Affichages : 1451
Taille : 78,1 Ko

    Il y a une contrainte d'inclusion ( le symbole (I) ) à prendre en compte. Si je ne me trompe pas dans la représentation de l'inclusion, il devrait y avoir une flèche (I)----->Composer, mais je n'ai pas trouvé comment la faire apparaître dans JMerise, un bogue ?

    En effet, au niveau des tables :
    - Eleve(idEleve, #idClasse, #idGroupe...)
    - Composer(#idClasse, #idGroupe)

    Un élève ne peut appartenir à un groupe que si cet élève fait partie d'une des classes qui composent ce groupe. Autrement dit, une paire (idClasse, idGroupe) dans Eleve, doit être incluse dans l'ensemble des paires (idClasse, idGroupe) dans la table Composer.

  12. #12
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    D'accord, cela nous fait donc :
    Nom : MCD-3.png
Affichages : 1456
Taille : 26,2 Ko

    Je remarque que tu n'as pas changé la cardinalité entre "GROUPE" et "Avoir cours".
    Tu n'étais pas d'accord avec mon analyse?

  13. #13
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 601
    Points : 56 700
    Points
    56 700
    Billets dans le blog
    40
    Par défaut
    Citation Envoyé par f-leb Voir le message
    Nom : MCD_GroupeCours04.JPG
Affichages : 2046
Taille : 21,7 Ko

    Tout le Groupe 1 a cours le lundi en M2 les semaines A et B.
    Le sous-groupe 1A a cours le lundi en M3 et M4 les semaines A.
    Le sous-groupe 1B a cours le lundi en M3 et M4 les semaines B.
    Je m'étais dit que le groupe 1 de mon exemple pouvait ne pas avoir cours, seulement les sous-groupes 1A et 1B. Mais si je me trompe, tu mets la cardinalité mini à 1, oui.

    Dans le cas PP---1,1---diriger---1,1---Classe, cela veut dire qu'au niveau MLD/MPD tu peux tout fusionner dans la même table, mais il est pertinent de ne pas tout mélanger et de conserver deux tables PP et Classe (avec une clé étrangère idPP indexé, sans doublons).

  14. #14
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Citation Envoyé par f-leb Voir le message
    Je m'étais dit que le groupe 1 de mon exemple pouvait ne pas avoir cours, seulement les sous-groupes 1A et 1B. Mais si je me trompe, tu mets la cardinalité mini à 1, oui.
    En réalité, jusqu'ici, je n'ai jamais rencontré ce cas. Il est possible d'avoir un groupe qui a cours le lundi en classe complète et un mardi sur deux en demi-groupe. Mais si le groupe était toujours divisé en deux, je pense que les sous-groupes deviendraient des groupes (ce serait plus simple à gérer pour l'administration).

    Dans le cas PP---1,1---diriger---1,1---Classe, cela veut dire qu'au niveau MLD/MPD tu peux tout fusionner dans la même table, mais il est pertinent de ne pas tout mélanger et de conserver deux tables PP et Classe (avec une clé étrangère idPP indexé, sans doublons).
    Je prends bonne note et je vais faire des recherches sur ce que peut bien être une clé étrangère indexée

    J'ai passé l'après-midi à tourner en rond sans produire rien de valable. L'impression que j'ai eu les yeux plus gros que le ventre...
    Je vais m'arrêter pour la journée, ça ira peut-être mieux demain?

  15. #15
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 601
    Points : 56 700
    Points
    56 700
    Billets dans le blog
    40
    Par défaut
    Citation Envoyé par StephBretagne Voir le message
    Je prends bonne note et je vais faire des recherches sur ce que peut bien être une clé étrangère indexée
    Il s'agit du champ Classe.idPP, relié à la clé primaire PP.idPP :

    Nom : MCD_GroupeCours06.JPG
Affichages : 1407
Taille : 34,3 Ko

    Null interdit à Oui, car une classe doit avoir un PP.
    Indexé à Oui-Sans doublons pour interdire les doublons, car un PP ne peut l'être qu'une seule fois.

    Quand tu fais la relation dans la fenêtre, elle devient de type "un à un" :

    Nom : MCD_GroupeCours07.JPG
Affichages : 1210
Taille : 13,1 Ko

  16. #16
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    ok, merci, c'est clair dans les tables

    Mais on note ça comment dans le MLD que j'essaie (peut-être à tort?) d'écrire?

  17. #17
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 601
    Points : 56 700
    Points
    56 700
    Billets dans le blog
    40
    Par défaut
    Les index, c'est dans le modèle physique (MPD), donc dans Access directement

  18. #18
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Bonjour f-leb

    Citation Envoyé par f-leb Voir le message
    Les index, c'est dans le modèle physique (MPD), donc dans Access directement
    ok, cool !

    Bon alors je me lance:

    Légende :
    Relation
    Clé primaire
    #Clé étrangère


    Creneau(idCreneau, nomJour, nomHeure)
    Semaine(nomSemaine)
    Avoir-cours(#idGroupe, #idCreneau, #nomSemaine)
    PP(idPP, nomPP, prenomPP, mailPP, #idMatiere, #idClasse)
    Matiere(idMatiere, nomMatiere)
    Classe(idClasse, nomClasse, #idPP, #idEleve)
    Eleve(idEleve, #idClasse, #idGroupe, nomEleve, PenomEleve, fonctionEleve, mailEleve...)
    Composer(#idClasse, #idGroupe)
    Groupe(idGroupe, #idEleve, nomGroupeEts, nomGroupePerso)
    SousGroupe(#idGroupe, #idGroupeParent, nomGroupeEts, nomGroupePerso)

    J'espère ne rien avoir oublié et ne pas avoir fait trop d'erreurs...
    J'ai repris ce que tu m'avais indiqué pour GroupeParent mais pour tout dire, je ne sais pas trop d'où il sort celui-là...

    Arf, faut que je bouge... Bon dimanche à toi

  19. #19
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 601
    Points : 56 700
    Points
    56 700
    Billets dans le blog
    40
    Par défaut
    Bonjour,

    La table Semaine n'est sans doute pas très utile (elle ne contiendrait que deux lignes), un champ nomSemaine dans la table AvoirCours devrait suffire (voir mon message #9).

    Classe(idClasse, nomClasse, #idPP, #idEleve)
    Classe(idClasse, nomClasse, #idPP, #idEleve)

    Pour les groupes :
    Groupe(idGroupe, #idEleve, nomGroupeEts, nomGroupePerso)
    SousGroupe(#idGroupe, #idGroupeParent, nomGroupeEts, nomGroupePerso)
    Ce serait plutôt :
    Groupe(idGroupe, #idEleve, nomGroupeEts, nomGroupePerso)
    SousGroupe(#idGroupe, #idGroupeParent, nomGroupeEts, nomGroupePerso), inutile de dupliquer nomGroupeEts et nomGroupePerso.

    Exemple :

    Groupe
    idGroupe NomGroupe
    1 Groupe 1
    2 Groupe 1A
    3 Groupe 1B

    On a 3 groupes...

    SousGroupe
    idGroupe idGroupeParent
    2 1
    3 1

    ... mais les groupes 1A et 1B sont des sous-groupes, car ils ont le Groupe 1 comme groupe parent.


    Une autre solution (de facilité) serait de n'avoir qu'une seule table pour les groupes et sous-groupes :

    Groupe
    idGroupe NomGroupe idGroupeParent
    1 Groupe 1
    2 Groupe 1A 1
    3 Groupe 1B 1

    Le groupe 1 n'a pas de groupe parent (idGroupeParent reste à Null).

    Bon dimanche également

  20. #20
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Citation Envoyé par f-leb Voir le message

    La table Semaine n'est sans doute pas très utile (elle ne contiendrait que deux lignes), un champ nomSemaine dans la table AvoirCours devrait suffire (voir mon message #9).


    Classe(idClasse, nomClasse, #idPP, #idEleve)
    Ah oui, c'est vrai !

    Pour les groupes :


    Ce serait plutôt :
    Groupe(idGroupe, #idEleve, nomGroupeEts, nomGroupePerso)
    SousGroupe(#idGroupe, #idGroupeParent, nomGroupeEts, nomGroupePerso), inutile de dupliquer nomGroupeEts et nomGroupePerso.
    Tu as raison.

    Exemple :

    Groupe
    idGroupe NomGroupe
    1 Groupe 1
    2 Groupe 1A
    3 Groupe 1B

    On a 3 groupes...

    SousGroupe
    idGroupe idGroupeParent
    2 1
    3 1

    ... mais les groupes 1A et 1B sont des sous-groupes, car ils ont le Groupe 1 comme groupe parent.


    Une autre solution (de facilité) serait de n'avoir qu'une seule table pour les groupes et sous-groupes :

    Groupe
    idGroupe NomGroupe idGroupeParent
    1 Groupe 1
    2 Groupe 1A 1
    3 Groupe 1B 1

    Le groupe 1 n'a pas de groupe parent (idGroupeParent reste à Null).
    J'aime bien la dernière solution (de facilité) parce qu'il est en fait assez rare que j'ai des sous-groupes; ça dépend des établissements. C'est juste que j'ai essayé de penser à toutes les situations que j'ai déjà vécues...

    Mais si tu penses que l'autre solution est vraiment mieux, je suivrai tes conseils, bien sûr

Discussions similaires

  1. [MySQL] Comment gérer un futur import dans ma base de données
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/02/2014, 10h11
  2. Base de données élèves
    Par Popcéline dans le forum Modélisation
    Réponses: 1
    Dernier message: 20/09/2008, 21h50
  3. Calcul de la taille d'une future base de données
    Par Kuma25 dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 17/08/2005, 09h54
  4. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 16h16
  5. associer une base de données(access) a un dbgrid
    Par ange1708 dans le forum MFC
    Réponses: 3
    Dernier message: 11/06/2002, 12h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo