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

Schéma Discussion :

MCD avec conditions [MCD]


Sujet :

Schéma

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 89
    Points : 52
    Points
    52
    Par défaut MCD avec conditions
    bonjour tout le monde ,

    j'ai quelques questions concernant le MCD de la BDD que je vais utiliser pour mon application .
    au fait je doit faire le MCD d'un arbre de ce genre Nom : untitled.JPG
Affichages : 838
Taille : 7,6 Ko.

    je suppose que ca va etre quelque chose qui ressemble a cela Nom : untitled2.JPG
Affichages : 761
Taille : 42,0 Ko ( enfin je crois )

    mais le problème c'est que je ne vois pas comment gérer cela notamment pour un autre type d'arbre qui contient aussi des conditions et un résultats en fonction de la succession de conditions ? je ne sais pas s'il y a des règles général pour la modélisation des arbres de ce genre mais j'espère que vous pourrez m'aider !!

    merci beaucoup pour ce magnifique forum

    bien a vous

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Euh... Une BDD gère des données, pas des opérations réalisées par un programme !

    Ton schéma ne décrit rien qui puisse nous aiguiller sur les données que tu as à gérer.

    Quelles sont les entités ? Class1 peut en être une mais ça m'étonnerait que Résultat1 et Résultat2 en soient.

    Dis-nous en un peu plus sur ton besoin réel.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 89
    Points : 52
    Points
    52
    Par défaut
    bonjour ,

    Au fait ce que je doit faire c'est attribuer a une liste d'élèves un travail a faire ( c'est ce que j'ai appeler résultat : le travail a faire ) et ces travaux sont attribues aux élevés soit en fonction de leurs ( points obtenu pour les autres travaux , leur age , leur degré de compréhension..... ) c'est ce que j'ai appeler conditions , qui peuvent de toute sorte.
    classe 1, representerai la categorie d'eleves .

    c'est une sorte d'arbre de decision avec plusieurs chemin !!!

    donc dans ma base de donnees je devrais avoir une table élèves , une table conditions et une table resultats ( travaux à effectuer ).

    ce que qui me pose problème c'est que par exemple " je doit d'abord verfier qu' un élève a obtenu plus que 12/20 à l'ancien interro avant de verfier son age ' c'est ce que je voulais faire avec la table " lien condition mère et fille " dans ma base de donnees pour exprimer cette hiérarchie .

    donc enfin de compte se je me suis bien exprimé , je voudrais mettre en place des tables qui je choisis un élevé, je sais quel travail je doit lui attribuer ! en sachant que apres c'est avec une procedure stockees que je vais coder ca .

    merci beaucoup pour ton aide

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Euh... je ne voudrais pas te vexer mais un prof qui fait autant de fautes, ça la fout mal !

    Bon, passons au problème...

    Tu as donc des élèves qui ont un travail à faire et qui obtiennent des résultats (notes) à une certaine date.

    En gras sont les entités, en souligné l'association entre les entités, en italique une information portée par l'association.

    Ça donne le schéma de type MCD suivant :
    Eleve -0,n----Faire----0,n- Travail

    Passons aux tables :
    T_Eleves_El(El_Id, El_Nom, El_Prenom, El_Age, ...)
    T_Travaux_Tr(Tr_Id, Tr_Libelle, ...)
    TJ_Faire_ET(ET_IdEleve, ET_IdTravail, ET_Note, ET_Date, ...)

    Au passage, j'utilise ci-dessus une adaptation personnelle du standard de nommage préconisé par SQLPro.

    Ensuite, c'est ton application qui va devoir se débrouiller avec les conditions du choix du travail à faire.

    Quelle est la dernière note obtenue par un élève ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT e.El_Nom AS NomEleve, e.El_Prenom AS PrenomEleve, t.Tr_Libelle AS Travail, et.ET_Note AS DerniereNote, MAX(et.ET_Date) AS DateDerniereNote
    FROM TJ_Faire_ET AS et
    INNER JOIN T_Eleves_El AS e ON et.ET_IdEleve = e.El_Id
    INNER JOIN T_Travaux_Tr AS t ON et.ET_IdTravail = t.Tr_Id
    WHERE e.El_Nom = 'Dupont' AND e.El_Prenom = 'Antoine'
    Quels travaux puis-je lui donner qu'il n'a pas déjà faits ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT t.Tr_Libelle AS Travail
    FROM TJ_Faire_ET AS et
    INNER JOIN T_Eleves_El AS e ON et.ET_IdEleve = e.El_Id
    RIGHT JOIN T_Travaux_Tr AS t ON et.ET_IdTravail = t.Tr_Id
    WHERE e.El_Nom = 'Dupont' AND e.El_Prenom = 'Antoine' AND et.ET_IdTravail IS NULL
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 89
    Points : 52
    Points
    52
    Par défaut
    je te remercie cinephill pour ton aide , mais je pense qu'on est pas encore sur la meme longeur d'onde !! tu m'excusera pour les fautes de frappes aussi .

    mais au fait , ce que je doit vraiment gérer dans cette application ce sont les priorités que je donne a mes conditions . je m'explique :

    je suis bien d'accord que pour savoir Quelle est la dernière note obtenue par un élève je vais devoir ecrire la requete qui lui correspond , mais supposons qu'un jour je ne veux plus vérifier que c'est la note obtenue que je veux verfier c'est la moyenne du premier semestre .

    je vais a ce moment la devoir tout recoder ? ou du moins aller dans mon script et faire pas mal de modif !!!
    l'idee et de changer ca dans une table plutot que de tout recoder .

    si on part de ce principe je doit avoir une table conditions avec un champ qui fais reference a une table ou je regroupe les eleves en fonction du cas .

    mais la viens le probleme de la priorité des conditions , je doit d'abord verifier une condition avant d'en verifier une autre !!!

    enfin reflechissons d'abord a la premiere contraintes ..


    merci bcp

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Tu dois pouvoir enregistrer des requêtes en tant que fonctions et y faire appel avec ton interface.
    Et puisque tu parles de script (il s'agit peut-être de PHP ?), tu peux intégrer ces fonctions dans un module et composer une zoulie interface qui présente les fonctions disponibles avec des cases à cocher et pourquoi pas des zones de texte pour saisir des priorités d'interrogation.

    La moyenne d'un élève :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT e.El_Nom, e.El_Prenom, AVG(et.ET_Note) AS Moyenne
    FROM TJ_Faire_ET AS et
    INNER JOIN T_Eleves_El AS e ON et.ET_IdEleve = e.El_Id
    WHERE e.El_Nom = 'Dupont' AND e.El_Prenom = 'Antoine'
    Le schéma que j'ai proposé fonctionne avec toutes sortes d'interrogations alors qu'intégrer des conditions dans le modèle fonctionnera (peut-être)... jusqu'au jour où tu voudras une condition qui n'existe pas encore dans la base.

    Bien sûr, ce schéma de base est à adapter et peut-être à compléter en rangeant les élèves dans des classes et les travaux dans des matières par exemple. Tu peux aussi ajouter une notion de niveau de difficulté d'un travail qui te permettrait de sélectionner les travaux à donner à un élève qui a par exemple obtenu une moyenne supérieure à 14/20...

    Mais, à mon avis, concentre toi prioritairement sur le modèle de données en faisant abstraction dans un premier temps des conditions, priorités et contraintes d'interrogation de ces données.
    Avec un modèle solide, tu pourra l'interroger dans tous les sens.
    Avec un modèle adapté à ton idée actuelle de priorisation et de regroupement des données dans un certain sens, tu prendrais le risque de devoir changer le modèle un jour ou tu changeras d'optique de regroupement.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 89
    Points : 52
    Points
    52
    Par défaut
    merci beaucoup cinephil ,

    je vais essayer de faire quelques exemples de modèles de données , et je demanderai ton avis a propos . je pense que tu as raison que je suis entrain de me compliquer la vie a vouloir tout mettre sur la BDD .

    merci encore une fois pour tes conseils

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/06/2004, 14h51
  2. Sélection multi table avec condition
    Par iuz dans le forum Langage SQL
    Réponses: 8
    Dernier message: 05/05/2004, 15h04
  3. ALTER VIEW avec condition
    Par yan77 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/04/2004, 17h22
  4. Index avec conditions
    Par marhnix dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 29/03/2004, 10h48
  5. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48

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