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 :

Joindre des données avec Doctrine


Sujet :

Symfony PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut Joindre des données avec Doctrine
    Salut a tous,

    J'aurais besoin de créer en BDD les informations d'un utilisateur, ces infos seraient : nom prénom etc.. compétences et sous compétences (par exemple, informatique comme compétence et réseau comme sous compétence)
    J'ai un peu de mal a imaginer la jointure a faire entre ces trois tables (infos normales, compétences, sous compétences), je pense que je devrais déjà créer une entité User, une Compétence, et une SousCompétence et que je devrais faire une jointure de type ManyToOne (One serait le User et Many seraient les compétences et sous compétences)
    Mais je suis un peu perdu.. Pouvez vous m'éclairer ?

    Merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Points : 1 022
    Points
    1 022
    Par défaut
    Bonjour,

    ce sujet peut être mieux traité dans les sections UML & Conception ou SGBD & sql .
    Ce que je propose :
    Utilisateur (plusieurs a un ou zéro a sous-compétences )
    Sous-compétences ( plusieurs a exactement une compétence )
    La clé étrangère peut être a nulle pour la table utilisateur ( une personne non compétente du tout )
    Chaque sous compétence doit appartenir à une compétence , une catégorie on va dire ( clé non nulle)

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut
    Je pense pas que ce sujet ait sa place dans les sections UML etc.. mon problème de conception se pose uniquement sur le fonctionnement de Doctrine
    Je sais plus moins concevoir des bases de données relationnelles en SQL pur mais avec Doctrine la réflexion a avoir n'est pas du tout la même... (On ne passe pas table ou clé étrangère etc.. dans Doctrine)

    Quelqu'un pourrait m'éclairer ?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Points : 1 022
    Points
    1 022
    Par défaut
    Peut être que j'ai pas compris la question, mais doctrine ce n'est qu'un ORM si tu as developpé avec Java/JEE c'est JPA ou Propel pour Symfony 1
    ou Eloquent pour Laravel .

    voila http://dico.developpez.com/html/3091...al-Mapping.php la definition de ORM .

    n'hésite pas a reformuler la question car j'ai pas compris

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 252
    Points : 358
    Points
    358
    Par défaut
    Il faut en effet créer les 3 entités (Utilisateur, Competence, SousCompetence) et les lier entre elle.

    Pour une sous-compétence appartenant a une compétence, la relation se fait de la manière suivante dans l'entité "SousCompetence"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        /**
         * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Competence")
         * @ORM\JoinColumn(name="competence_id", referencedColumnName="id", nullable=false)
         */
        protected $competence;
    Il y'a un exemple plus complet ici : https://symfony.com/doc/current/doct...ociations.html
    Il faut ensuite relier l'utilisateur a des sous compétence, avec une relation ManyToMany

Discussions similaires

  1. Rafraichissement des données avec ADOConnection -SQL Server
    Par newfsch dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/01/2006, 21h48
  2. Exploration des données avec cristal Reports XI
    Par silversatch62 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 17/06/2005, 09h51
  3. [format des données avec une procédure stockée]
    Par viny dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 10/03/2005, 13h24
  4. Exporter seulement une partie des données avec pg_dump ?
    Par Philhz dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 31/07/2004, 09h50
  5. Réponses: 13
    Dernier message: 20/03/2003, 08h11

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