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] Conseil pour modéliser les données d'un site d'échange de mangas


Sujet :

Schéma

  1. #1
    Membre du Club Avatar de tiger33
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Points : 56
    Points
    56
    Par défaut [MCD] Conseil pour modéliser les données d'un site d'échange de mangas
    Bonjour,

    Le contexte : 1 site d'échange de mangas animés "non-licenciés" par voie numérique et/ou postale accompagnés de news sur le monde de la japanimation.

    2 sortes d'users(concernant les échanges) :
    1. Les traders (ceux qui échangent par la poste booléen trader=1)
    2. Les autres


    Pour les traders un système de Liste Blanche=bon trader et liste noire =mauvais trader sera mis en place.

    edit : j'ai supprimer le début de mcd en PDF et mwb (Mysql Workbench) zippé (voir MCD + complet à la fin du topic)

    Les question :

    1. Y'a-t-il des énormités sur l'ensemble du schéma
    2. une catégorie de news n'est modérée actuellement que par un modérateur puis-je faire un truc du style "set d'idUtilsateurs" ? (en changeant la cardinalite de la relation bien-sûr)
    3. Comment faire et alimenter les deux liste de traders (les deux booléens actuels ne me vont pas bien)


    merci beaucoup
    Tiger33,
    Développeur, chômeur, en auto formation sur joomla!
    Site à venir

  2. #2
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 060
    Points
    2 060
    Par défaut
    Bonjour tiger33,

    Citation Envoyé par tiger33 Voir le message
    2 sortes d'users(concernant les échanges) :
    1. Les traders (ceux qui échangent par la poste booléen trader=1)
    2. Les autres

    Pour les traders un système de Liste Blanche=bon trader et liste noire =mauvais trader sera mis en place.
    D'une manière générale, avant de modéliser directement des tables, je te conseille de passer par une étape de modélisation conceptuelle (modèle relationnel ou modèle Entité-Association Merise, par exemple) ce qui te permettra d'éviter bien des pièges, retours arrières ou incohérences de ta base de données (tutoriels disponibles sur ce site).

    Pour distinguer les traders des autres utilisateurs je te conseille de recourir au concept de généralisation / spécialisation que j'ai déjà exposé sur ce forum ici entre autres.
    Tu seras amené à distinguer, parmi la population des utilisateurs, le sous-ensemble des traders pour lequel seulement les notions de liste blanche et liste noire existent. Ceci te permettra de mettre au rancart le booléen Trader.

    Citation Envoyé par tiger33 Voir le message
    Y'a-t-il des énormités sur l'ensemble du schéma
    J'ai un doute sur la relation Utilisteurs -- Catégorie : 1 Utilisateur est lié à une seule Catégorie et 1 Catégorie est liée à un seul Utilisateur.

    Citation Envoyé par tiger33 Voir le message
    puis-je faire un truc du style "set d'idUtilsateurs" ? (en changeant la cardinalite de la relation bien-sûr)
    Qu'est-ce qu'un "set d'idUtilsateurs" ?

    Citation Envoyé par tiger33 Voir le message
    Comment faire et alimenter les deux liste de traders (les deux booléens actuels ne me vont pas bien)
    Un trader est soit en liste blanche soit en liste noire. Un seul booléen suffit, par exemple "liste_trader". S'il est à "Oui", le trader est en liste blanche ; s'il est à "Non", le trader est en liste noire. A moins qu'un trader puisse n'être dans aucune liste...


    JPhi33
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

  3. #3
    Membre du Club Avatar de tiger33
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Points : 56
    Points
    56
    Par défaut
    JPhi33,

    merci ta réponse claire, maintenant c'est clair qu'il me faut un héritage entre utilisateur et trader. avant de mettre résolu, connais-tu un win-design-like gratuit qui puisse générer du mysql automatiquement ? (je ne peux pas physiquement me servir d'une feuille et d'un crayon)

    "set d'idUtilisateur", çà n'est pas très clair ok alors j'explique

    mon champs modérateur dans la table catégorie peut-il être de type set et au lieu d'avoir set('toto',tata','tutu') puis-je avoir set(utilisateur.idutilisateur.value)ou un truc du genre ?

    merci
    Tiger33,
    Développeur, chômeur, en auto formation sur joomla!
    Site à venir

  4. #4
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 060
    Points
    2 060
    Par défaut
    Bonjour tiger33,

    Citation Envoyé par tiger33 Voir le message
    connais-tu un win-design-like gratuit qui puisse générer du mysql automatiquement ?
    Non, mais tu peux regarder dans le sous-forum Outils du forum Conception.

    Citation Envoyé par tiger33 Voir le message
    "set d'idUtilisateur", çà n'est pas très clair ok alors j'explique

    mon champs modérateur dans la table catégorie peut-il être de type set et au lieu d'avoir set('toto',tata','tutu') puis-je avoir set(utilisateur.idutilisateur.value)ou un truc du genre ?
    Tu devrais poser cette question dans le forum MySQL (ici, c'est un forum plutôt orienté modélisation conceptuelle)
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

  5. #5
    Membre du Club Avatar de tiger33
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Points : 56
    Points
    56
    Par défaut
    ok voila le mcd refait, sous forme jpg, désolé pour la taille.

    une seule question : mcd valide ou erroné ? (c'est un peu vague je sais,mais je ne vois rien de particulier sur quoi m'attardé.) En gros, Le MCD vous semble-t-il :
    • Respecter Merise ?
    • Répondre aux besoins exprimé plus haut (il me semble, mais j'ai la tête dans le guidon)
    • ëtre exempt de choses qu'on pourrait simplifier

    (çà fait trois questions)
    j'ai rajouté la listeEchangeable "composée" d'itemEchangeable.
    J'ai égalment Ajouté deux entiers pour compté le nombre de transactions et les"bonnes" (le booléen listeNoire passera à true si bonneTransact<=NombreTransact/2)

    EDIT : Il semble que j'aie des problèmes "d'index inclusion" au moment du passage au Mpd. cela concerne les association "modérePar" et la composition "contient". Je ne sais pas si c'est une erreur conceptuelle ou d'utilisation de PowerDesigner 12.5
    merci
    Images attachées Images attachées  
    Tiger33,
    Développeur, chômeur, en auto formation sur joomla!
    Site à venir

  6. #6
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 060
    Points
    2 060
    Par défaut
    tiger33,

    moderePar

    Les utilisateurs qui modèrent des catégories ont une particularité qui est (justement) d'être modérateur. En conséquence, l'association moderePar ne s'applique qu'aux utilisateurs qui ont cette fonction (ça me semble être "Modo").

    Tu pourrais spécialiser Utilisateurs en Modérateurs. "moderePar" serait alors une association entre Modérateurs et Catégorie ayant une cardinalité 1,n côté Modérateurs. En contrepartie, il y a une entité supplémentaire à gérer : insertion dans Modérateur quand un Utilisateur le devient, suppression quand il arrête sa fonction de modérateur.

    Malgré cette contrepartie tu y gagnes car tu évites les risques d'incohérences : Utilisateur de fonction "Modo" sans Catégorie ou Utilisateur non "Modo" lié à des Catégories.


    fonction

    Une question de candide : un Modo peut-il être aussi Uploader ? Autrement dit, parmi les fonctions que tu as définies, se peut-il qu'un Utilisateur en exerce plusieurs à la fois (ce qui poserait évidemment quelques problèmes).


    Pour le reste, ça me sembre correct. Evite quand même les pattes d'associations qui se croisent et les association qui chevauchent des pattes ("rattacheA").


    JPhi33
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

  7. #7
    Membre du Club Avatar de tiger33
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Points : 56
    Points
    56
    Par défaut
    Jphi33,

    c'est vrai pour modo, je vais faire la spé.
    l'utilisateur peux exercer plus d'une fonction, effectivement. mais il y aurait une hierachie des fonction (ce qui, si je voulais le traduire donnerais des spécialisations progressive -- modo est un uploader particulier admin un modo modo particulier et root un admin particulier--)

    Sais-tu pourquoi j'ai ces message "d'index inclusion" lors du passage mpd ? (avec powerDesigner)
    de plus il ne veut pas que idItem ne soit auto incrémenté, il me semble pourtant que dans la composition l'élément qui compose a sa propre clé.
    Je sais qu'on sort du domaine conceptuel mai je ne vais pas réexpliquer tout dans le forum outils (d'autant plus que c'est peut-être lié au conceptuel)
    regarde la capture d'écran
    merci encore.
    Images attachées Images attachées  
    Tiger33,
    Développeur, chômeur, en auto formation sur joomla!
    Site à venir

  8. #8
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 060
    Points
    2 060
    Par défaut
    Bonjour,

    Citation Envoyé par tiger33 Voir le message
    Sais-tu pourquoi j'ai ces message "d'index inclusion" lors du passage mpd ? (avec powerDesigner)
    Désolé, je ne connais pas powerDesigner.

    Citation Envoyé par tiger33 Voir le message
    de plus il ne veut pas que idItem ne soit auto incrémenté, il me semble pourtant que dans la composition l'élément qui compose a sa propre clé.
    Ca me semble logique.

    itemEchangeable est identifiée selon le principe d'identification relative. C'est-à-dire que son identifiant propre, idItem, ne suffit pas à distinguer de manière unique chacune de ses occurrences. Pour y parvenir, elle doit s'appuyer sur une autre entité identifiée de manière absolue : ListeEchangeable. L'identifiant unique de itemEchangeable est donc composé :
    - de l'identifiant absolu idListe
    - de lidentifiant relatif idItem

    itemEchangeable est qualifiée d'entité faible ; ListeEchangeable est une entité forte.


    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ListeEch.   itemEch.
    
    idListe     idItem
    -------     ------
       1          1
       1          2
       2          1
       2          2
    Le véritable identifiant de itemEchangeable est donc {idListe, idItem}. Or voici ce qui se passe si tu utilises une donnée de type auto-incrémenté pour idItem :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ListeEch.   itemEch.
    
    idListe     idItem
    -------     ------
       1          1
       1          2
       2          3
       2          4
    Dans ce cas, itemEchangeable n'est plus identifiée par rapport à ListeEchangeable mais elle dispose d'un identifiant absolu.


    Le type auto-incrémenté est incompatible avec le concept d'identifiation relative pour l'identification d'une entité faible.


    JPhi33
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/03/2012, 12h35
  2. [Info] Conseils pour gérer les ressources
    Par calogerogigante dans le forum Eclipse Java
    Réponses: 10
    Dernier message: 05/07/2009, 12h49
  3. Problème pour lire les donnée d'une table externe
    Par mardoch dans le forum SQL*Loader
    Réponses: 6
    Dernier message: 17/07/2008, 16h41
  4. Pour extraire les données d'un fichier texte
    Par Floch dans le forum Access
    Réponses: 2
    Dernier message: 02/05/2006, 15h01
  5. Delphi7-DOA : procédure dynamique pour ramener les données?
    Par delphim dans le forum Bases de données
    Réponses: 5
    Dernier message: 06/12/2004, 18h26

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