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

Symfony PHP Discussion :

Conseil de conception de relations entre plus de 2 entités [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 258
    Par défaut Conseil de conception de relations entre plus de 2 entités
    Bonsoir à tous,
    Je me permets de solliciter un conseil de « conception »
    Je suppose que le sujet a déjà été traité, mais je n’ai pas trouvé, et m’en excuse par avance (de même que pour les inexactitudes de vocabulaire)
    Je voudrais créer un lien entre plusieurs entités de même "nature" (occurrences d’une même class) i

    Exemple :
    L’entité A est en relation avec l’entité B car ayant la même couleur
    L’entité A est en relation avec l’entité C car ayant le même format
    L’entité C est en relation avec l’entité F car ayant le même sujet


    Quand j’affiche le détail de l’entité F, je voudrais pouvoir également afficher qu’elle est en relation avec les entités A, B et C

    J’envisage 2 approches

    1) Une relation manyTo many avec attribut : Entité1 - Entité2 – Objet de la relation
    o A-B-Couleur
    o A-C-format
    o C-F-sujet
    Mais j’ai un peu peur de ne pas savoir retrouver facilement A et B depuis F (recherche sans fin si non limitée à un niveau de profondeur)

    2) Une relation « multi-entité » de taille prédéfinie avec une entité de référence
    • Entité1-Entité2- Objet de la relation2- Entité3- Objet de la relation3
    Exemple : A-B-couleur-C-format-F-sujet
    Mais je ne vois pas trop comment définir ça dans Doctrine

    J’espère avoir été clair, sinon n’hésitez pas ..
    Par avance, merci de vos conseils sur la direction à prendre
    Bertrand

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Tu peux créer une entité qui s'auto-référence: http://doctrine-orm.readthedocs.org/...lf-referencing

    Mais ton explication n'est pas claire. Peux-tu parler nous expliquer ton domaine? Dis-nous ce qu'est ton entité: un produit? Une équipe? une image?

    Je ne comprends pas non plus coment F peut avoir une relation avec A, B et c dans ton exemple? Est-ce que F est lié à B parce que F est lié à C, qui est lié à A, qui est lié à B?

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 258
    Par défaut
    Bonsoir Tsilefy,
    Merci pour la réponse, je vais creuser le self-referencing
    F est en effet en relation avec B, car en relation avec C qui est en relation avec A

    Pour être plus clair, prenons une collection de timbres
    je voudrais lister les "faux-amis" et variantes d'un timbre pour attirer l'attention sur le fait qu'il y a risque d'erreur
    le timbre A ressemble au timbre B mais n'a pas la même couleur
    le timbre A a été également imprimé dans un autre format, et il porte alors la référence B
    le timbre F est en réalité une variété du timbre C (gravure différente)
    le timbre G est de même couleur que le timbre A, mais avec une autre faciale
    ..
    le pb est qu'à la saisie de G, on sait que G est une variante de A, mais plus forcément qu'on a déjà saisi que A ressemble à B
    et si G est lié à A qui est lié à B, alors G est lié à B

    On doit pouvoir faire une analogie avec d'autres domaines : j'affiche telle pièce auto, mais pensez à regarder ses variantes, copies ..

    je ne sais pas si je suis plus clair
    merci encore
    Bertrand

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Par défaut
    Ce qui est clair c'est que ca n'a rien a voir avec symfony2. Je dis ca pour toi, les personnes sur le forum symfony2 ont peut être moins de compétences que celles trainant sur le forum de conception

    Pour moi si ton problème est une simple fonctionnalité annexe, je solverai plus ca par un algorithme de recherche que par une modélisation particulière de tes classes métier.

    Si parcontre le coeur de ton site c'est de faire ce genre de traitement, alors je partirai sur de la modelisation NoSQL en graphe, comme Neo4J

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Est-ce que tes "variantes" peuvent être assimilées à une taxonomie? (catégorie, classe, type) ou est-ce qu'elles sont aléatoires et peuvent connecter arbitrairement deux objets?

    Est-ce qu'un objet peut appartenir à 2 variantes? ex: B est comme A mais a une couleur différente et a une valeur faciale différente?

    Est-ce que tes relations peuvent être envisagées comme une liste chaînée? Ce qui fait qu'à partir du moment où on a accès à un élément, on peut remonter les autres éléments de la liste.

    Il est également possible que tu as un problème de conception et qu'il y a un moyen plus simple de structurer tes classes, et c'est pour ça que je t'ai demandé d'expliquer ton domaine plus précisément. Si tu pars sur une mauvaise conception, aucune solution ne te sauvera.

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 258
    Par défaut
    Bonsoir et merci pour vos réponses,

    Le lien avec symfony (mais qui ne le rend pas spécifique avec Symfony) est que je veux/dois utiliser Doctrine
    Cette fonction est vraiment marginale (heureusement) de l'appli

    D'après ce que j'ai compris de la taxonomie, les relations entre les entités sont aléatoires
    Dans la pratique, A est une variante de B pour une seule et unique raison (couleur OU faciale)
    Liste chainée ? dans le sens de l'exemple donné oui, A peut-être lié à B, lui même à C, c'est pourquoi j'envisageais 2 approches :
    - une "verticale", relation entre 2 entités : self-referencing avec un attribut en plus (descriptif de la variante : couleur,..)
    - une "horizontale" relation entre x entités sous forme de fil ou de chaine

    C'est justement pour ne pas me tromper de conception que je demande conseil, et vous remercie de vous y pencher

    Je ne sais pas si j'ai réussi à expliquer clairement mon besoin, mais on pourrait aussi rapprocher cela comme un fil aléatoire (sans relation naturelle comme du même auteur, du même sujet,..) entre différents articles d'un blog, sauf qu'il y aurait un attribut supplémentaire expliquant le pourquoi du lien .
    Ou sur un site de e.commerce ou des variantes de produits sont proposées (quoique que je ne sais pas comment sont conçues ces listes de produits équivalents/recommandés)

    merci encore
    Bertrand

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

Discussions similaires

  1. Conception relation entre les tables
    Par smiraureloff dans le forum Requêtes et SQL.
    Réponses: 17
    Dernier message: 27/09/2007, 16h54
  2. [Conception]relation entre table personnel et table enfants
    Par binouzzz19 dans le forum Modélisation
    Réponses: 3
    Dernier message: 18/04/2007, 15h48
  3. [Conception]problème de relation entre les tables
    Par vaness76 dans le forum Modélisation
    Réponses: 3
    Dernier message: 18/04/2007, 11h32
  4. [Conception] Quelles relations entre mes tables ?
    Par jeromepiwees dans le forum Modélisation
    Réponses: 4
    Dernier message: 26/03/2007, 12h12
  5. [Conception] Problème de relation entre 2 tables
    Par mLk92 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 20/10/2006, 15h39

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