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

Doctrine2 PHP Discussion :

Relations, volumétrie et mémoire


Sujet :

Doctrine2 PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Chef de projet Informatique
    Inscrit en
    Février 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chef de projet Informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 49
    Par défaut Relations, volumétrie et mémoire
    Bonjour,

    Pour certaines relations un tableau est créé dans l'entité pour stocker les données liées. Exemple d'une relation OneToMany pour une entité Categorie. Un roman appartient à une Categorie. Une categorie est donc liée à plusieurs romans. Il existe un tableau dans l'entité Categorie pour stocker les romans. Imaginons que 5000 romans appartiennent à la même catégorie. Est-ce que les 5000 romans sont chargés dans le tableau quand on extrait la catégorie ?

    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Par défaut
    Si la catégorie a une relation onToMany vers Book, l'attributs books ne sera préchargé que si tu fait une jointure dans ta requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dql="SELECT c,b FROM Categorie c JOIN c.books b"
    ou bien que tu as une annotation fetch="EAGER"
    ou bien lorsque tu appelles expressement le getter de Books dans Catégory.

    Néammoins il n'y a pas d'obligations d'avoir des relations bi-directionnel.
    On peut se contenter d'avoir la relation book hasOne Category sans avoir l'inverse (Category hasMany Books).
    Il faut faire des relations bidirectionnelle si elles ont du sens par rapport à ton application et qu'elle ne sont pas trop lourdes.
    Ici si on a besoin d'afficher la liste des livres pour une catégorie on peut faire une requete en dql pour les retrouver
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dql="SELECT b FROM Book b Join b.category c WHERE c.id=:idCategorie"
    comme d'autre part on aura besoin d'une pagination pour afficher ces 5000 livres, avoir un attributs books dans category a peu d'intéreret

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

Discussions similaires

  1. fichier mappé en mémoire
    Par WinBernardo dans le forum Delphi
    Réponses: 7
    Dernier message: 01/12/2006, 09h38
  2. Accéder à un espace mémoire sous XP
    Par keny dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 02/08/2002, 12h37
  3. Déterminer l'adresse d'une application en mémoire
    Par Gib dans le forum x86 32-bits / 64-bits
    Réponses: 9
    Dernier message: 11/06/2002, 14h27
  4. Vitesse de la mémoire vidéo
    Par Anonymous dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 06/06/2002, 20h20
  5. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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