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 :

Mauvaise modélisation ?


Sujet :

Modélisation

  1. #21
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour _developpeur_ et Fabien,

    Citation Envoyé par _developpeur_
    .../... le modele que j'ai fait n'est pas precisemment le résultat de ton MCD ?
    ==> OK, je voulais simplement dire que tu pouvais le moduler.


    Citation Envoyé par _developpeur_
    Quid de la clé primaire dans la Table AssociationActiviteService ?
    Quid des champs clé externe non renseignés dans la Table AssociationActiviteService ?
    ==> tu as raison : je m'aperçois qu'une de tes interrogations est passée à la trappe. En fait, c'est toi qui as trouvé : ton schéma est correct.

    Table AssociationActiviteService
    - Id_AssociationActiviteService (clé primaire, numéro auto)
    - Id_Niveau1
    - Id_Niveau2
    - Id_Niveau3
    - Id_Niveau4
    ...

    Les relations indiquées précédemment restent correctes.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  2. #22
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par Richard_35 Voir le message
    Bonjour _developpeur_ et Fabien,

    ==> OK, je voulais simplement dire que tu pouvais le moduler.


    ==> tu as raison : je m'aperçois qu'une de tes interrogations est passée à la trappe. En fait, c'est toi qui as trouvé : ton schéma est correct.

    Table AssociationActiviteService
    - Id_AssociationActiviteService (clé primaire, numéro auto)
    - Id_Niveau1
    - Id_Niveau2
    - Id_Niveau3
    - Id_Niveau4
    ...

    Les relations indiquées précédemment restent correctes.
    Bonjour Richard, merci.
    Dernière point, c'est grave si les clé externe IDniveau3 et 4 sont parfois vide dans la Table AssociationActiviteService ?
    Quels sont les impacts derrière ?? requetes SQL, code ...


    merci beaucoup

  3. #23
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Citation Envoyé par _developpeur_
    Dernière point, c'est grave si les clé externe IDniveau3 et 4 sont parfois vide dans la Table AssociationActiviteService ?
    Quels sont les impacts derrière ?? requetes SQL, code ...
    ==> eh bien, non, ce n'est pas grave, puisque tes règles de gestion l'imposent.


    Concrètement :
    • dans tes formulaires, il faudra prévoir des listes déroulantes qui proposeront le contenu de tes tables NiveauX mais dont le choix n'est pas obligatoire ;
    • dans les requêtes, si un niveau "Est Null", Access te le dira et tu pourras filtrer en fonction ;
    • attention de prévoir, via l'assistant, des flèches à droite (LEFT JOIN) pour "voir" les non-correspondances éventuelles ;
    • etc...
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  4. #24
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par Richard_35 Voir le message
    ==> eh bien, non, ce n'est pas grave, puisque tes règles de gestion l'imposent.


    Concrètement :
    • dans tes formulaires, il faudra prévoir des listes déroulantes qui proposeront le contenu de tes tables NiveauX mais dont le choix n'est pas obligatoire ;
    • dans les requêtes, si un niveau "Est Null", Access te le dira et tu pourras filtrer en fonction ;
    • attention de prévoir, via l'assistant, des flèches à droite (LEFT JOIN) pour "voir" les non-correspondances éventuelles ;
    • etc...
    OK merci beaucoup a vous. Je pars sur ce modèle.

    a bientot.

    David

  5. #25
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 659
    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 659
    Points : 56 970
    Points
    56 970
    Billets dans le blog
    40
    Par défaut
    rerebonjour,

    Pour en revenir avec l’unique table NiveauActivite, rien n’empêche d’associer 4 fois la table AssociationActiviteService à la table NiveauActivite :

    AssociationActiviteService -∞------------1- NiveauActivite
    ...................................|-∞-----------1- NiveauActivite_1
    ...................................|-∞-----------1- NiveauActivite_2
    ...................................|-∞-----------1- NiveauActivite_3
    (ajouter 4 fois la table NiveauActivite dans la fenêtre des relations)

    AssociationActiviteService(….., #idNiveauActivite1, #idNiveauActivite2, #idNiveauActivite3, #idNiveauActivite4…)


    les champs (clé externe) IDNiveauActivite3 et IDNiveauActivite4 ne seront pas renseignés..
    est-ce grave ? quels impacts derriere ?
    ça te coutera 4 octets par champ nom rempli , des requêtes pas forcément optimisées, des traitements supplémentaires avec des fonctions Nz, isnull, iif…

    Par exemple, si on veut connaître le nombre de niveauActivite remplis :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id, iif(isnull(idNiveauActivite1),0,1)+ iif(isnull(idNiveauActivite2),0,1)+ iif(isnull(idNiveauActivite3),0,1)+ iif(isnull(idNiveauActivite4),0,1) FROM

    Alors qu’avec une table de jointure :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id, count(*) FROMINNER JOINGROUP BY… ;

    Mais cela reste probablement tolérable pour une volumétrie "raisonnable" et peut-être plus facile pour les formulaires/états…

    …mais que se passera-t-il le jour ou un idNiveauActivite5 naîtra… 

  6. #26
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par f-leb Voir le message
    rerebonjour,

    Pour en revenir avec l’unique table NiveauActivite, rien n’empêche d’associer 4 fois la table AssociationActiviteService à la table NiveauActivite :


    (ajouter 4 fois la table NiveauActivite dans la fenêtre des relations)

    AssociationActiviteService(….., #idNiveauActivite1, #idNiveauActivite2, #idNiveauActivite3, #idNiveauActivite4…)




    ça te coutera 4 octets par champ nom rempli , des requêtes pas forcément optimisées, des traitements supplémentaires avec des fonctions Nz, isnull, iif…

    Par exemple, si on veut connaître le nombre de niveauActivite remplis :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id, iif(isnull(idNiveauActivite1),0,1)+ iif(isnull(idNiveauActivite2),0,1)+ iif(isnull(idNiveauActivite3),0,1)+ iif(isnull(idNiveauActivite4),0,1) FROM

    Alors qu’avec une table de jointure :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id, count(*) FROMINNER JOINGROUP BY… ;

    Mais cela reste probablement tolérable pour une volumétrie "raisonnable" et peut-être plus facile pour les formulaires/états…

    …mais que se passera-t-il le jour ou un idNiveauActivite5 naîtra… 
    Bonjour F-Leb, désolé pour le retard j'étais passé sur autre chose.
    Si je comprends bien ta solution, ca permet d'avoir une seule table qui contiendra tous les niveau d'activité. Mais comment savoir a quel niveau1 est rattaché un niveau 2 ? a quel niveau 2 est rattaché un niveau 3 ?

    et on se retrouve toujours avec des champs vide dans la table association ou j'ai mal compris ta solution ?

    merci

  7. #27
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    Citation Envoyé par f-leb Voir le message
    rebonjour,
    en quoi un modèle avec une seule table Activité au lieu de 4 tables ActivitéNiveauX ne conviendrait pas ?

    Activité(idActivite, LibelleActivite, NiveauActivite)

    avec NiveauActivite=1,2,3 ou 4
    Pour rattacher une activité de quelque niveau que ce soit à une autre qui doit être son 'parent', il suffit de rajouter un champ pour obtenir:
    Activité(idActivite, LibelleActivite, NiveauActivite,idActivitéParente)

    ainsi seule l'activité départ d'arborescence n'as pas de parent, toutes les autre en ont un.
    Tu peux accesoirement avoir autant d'étages que tu en as envie sans rien changer à ta table
    -------------------Simplifi----------comme si tout était simple--------

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Quels logiciels de modélisation pour une base de données ?
    Par octopus dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 11/06/2023, 16h20
  2. [Modélisation] Schéma constellation
    Par senke dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 13/05/2016, 13h27
  3. [Class/PHP/Postgres] Problème de modélisation...
    Par k-reen dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 27/02/2003, 08h49
  4. Réponses: 3
    Dernier message: 04/09/2002, 09h42

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