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 :

Trouver les relations d'objets idéales


Sujet :

Symfony PHP

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Trouver les relations d'objets idéales
    Bonjour à tous.

    Je galère depuis pas mal de temps sur un projet personnel. Celui-ci est tout bête, vraiment. Mais en fait une fois posé en termes d'objets c'est une horreur. Je n'arrive pas à m'en sortir.

    En quoi consiste le projet: On se connecte sur mon site, et on trouve un tableau de 100 cases (numérotées de 0 à 99. Ça ne changera jamais ni dans le temps, ni selon l'utilisateur). Dans chacune de ces cases, figurent plusieurs mots (chaque mot ne peut appartenir qu'à une case). Ces mots sont les mêmes pour tous les utilisateurs. L'utilisateur peut choisir un mot par case (parmi les mots disponibles), et constituer au final un tableau personnalisé. Les mots sont disponibles pour tout le monde, mais chacun peut faire la combinaison qui l'intéresse et la sauvegarder. En plus de cela, un utilisateur peut proposer à l'administrateur un mot à intégrer dans une case.

    Le Problème:
    Mon projet est tout bête. Mais je galère à mort pour tout ce qui est structure des objets. J'ai essayé plusieurs fois de trouver quelque chose de bien (parfois avec de l'aide sur IRC) mais je n'ai jamais réussi à trouver un truc qui tienne la route. Je sais qu'il me faut absolument une entité User et une entité Word. Pour le reste c'est le flou.

    Pour l'instant je suis parti sur une entité User, une entité Word et une entité Number (pour la case). Pas d'entité Table ou autre. Mais mon code est à modifier complètement puisque là j'atteins un niveau de requêtes hallucinant (202 requêtes MySQL sur la page pour modifier le tableau...). Donc le form pour modifier le tableau personnel n'est pas un formType basé sur un objet, mais un truc très sale fait de requêtes personnalisées. Tous les mots sont sauvegardés par itération pour chaque case. C'est très sale, intenable et extrêmement lent. Je vais donc devoir refonder entièrement mon code, et je cherche à ce que ce soit propre et relativement efficace (en terme de temps de réponse).

    Difficultés précises :

    • Dois-je créer une entité Number, ou dois-je seulement créer un attribut de type int dans Word ? Est-ce qu'utiliser une entité ne serait pas plus logique étant donné que ce sont les 100 mêmes qui reviennent toujours? Par ailleurs chaque numéro a des explications sur le type de mots qu'il contient. J'ai donc fait un attribut $rules de type "text" dans l'entité Number. Si je n'ai pas d'entité Number, où je place mes règles les concernant? Une entité Rules avec un attribut int $number?
    • Dois-je créer une entité Table ou dois-je simplement stocker les mots choisis dans un attribut $words de l'utilisateur, avec vérification (et suppression le cas échéant) qu'il n'y a pas déjà un mot pour la case, le tout réalisé dans le contrôleur ?
    • On m'a proposé de faire un serialize pour hasher le tableau et le ressortir ensuite. Cependant est-ce que ce n'est pas à éviter, étant donné que des mots peuvent être supprimés ou édités ?
    • Comment réaliser le formulaire de modification du tableau ? Pour l'instant j'ai réalisé ça de façon sale directement dans le contrôleur (aoutch). Dois-je faire une collection de formulaires ou un seul gros form? Mon formType sera t-il basé sur une classe (WordType?) ou aura t-il un data_class null ?


    Voilà un peu les questions que je me pose et les difficultés auxquelles je suis confronté... En réalité ça fait plusieurs mois que je cherche une solution viable (pas à temps plein, mais bon). Donc si vous avez des idées, n'hésitez surtout pas.

    Merci beaucoup par avance

  2. #2
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    salut jean rené,

    faut savoir qu'en docrtine 2 Objet dans ta page vue à chaque accès à une ligne d'enregistrement cela produit une requête.

    donc il faut plutôt charger entièrement ton tableau et le passer à la vue pour éviter cela.

Discussions similaires

  1. [MLD] Trouver les clés d'une relation
    Par Guigui13 dans le forum Schéma
    Réponses: 9
    Dernier message: 12/01/2012, 10h06
  2. Où trouver les objets graphiques HTML5 disponibles pour VS ?
    Par renaudbb dans le forum Visual Studio
    Réponses: 2
    Dernier message: 12/08/2011, 00h50
  3. Peut on raisonner en objets pour trouver les relations entre classes?
    Par wafiwafi dans le forum Diagrammes de Classes
    Réponses: 42
    Dernier message: 05/01/2011, 12h32
  4. [Normalisation] trouver les clés d'une relation
    Par harf18 dans le forum Schéma
    Réponses: 2
    Dernier message: 24/04/2009, 04h06
  5. Question sur les relations entre les objets
    Par kedare dans le forum Ruby on Rails
    Réponses: 4
    Dernier message: 18/04/2008, 14h13

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