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 :

Modification de formulaires et modèles de données


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 174
    Par défaut Modification de formulaires et modèles de données
    Bonjour

    je dois réoudre un probleme sur une application que je dois coder sous symfony, une application en apparence il s'agit essentiellement de faire de la saisie de données afin de générer des statistiques. Et donc pour cela on a différentes tables qui sont reliées en général à un formulaire qui va récolter les informations nécessaire pour les insérer dans cette table.

    Le petit piege sur ce projet c'est que les utilisateurs finaux souhaitent pouvoir ajouter des champs dans les différents formulaires si ils ressentent le besoin de récolter nouveaux types d'informations. Exemple tout bete: on récolte les informatiosn sur les employés de l'entreprise à travers un formulaire qui comporte un champ téléphone fixe et il s'avert qu'on veuille ajouter un champ téléphone mobile. Jusque là so far so good, cependant afin de sauvegarder cette nouvelle info en base de données, typiquement on va devoir ajouter une nouvelle colonne dans la table Employée de notre base...

    L'application étant developpée avec symfony, c'ets donc là se pose la tuile car on vient de modifier le modele de données et donc il faut régénérer le modele via doctrine ou propel en ligne de commande. Il n'est evidemment pas question de livrer au client une appli sur laquelle il va devoir faire des lignes de commande pour générer des classes du modele de données.

    ma question: Comment structurer ma base de données pour que je puisse faire les modifications attendues par mon client sans passer passer par l'ajout d'une nouvelle colonne et donc une modification du modele de données necessitant une régénration des classes par Doctrine ou propel?

    Exemple de tables: Produits (prix, description, nom), Magasins(adresse, type)
    exemples formulaire: saisie info produits, saisie info magasin
    Exemple modification: on veut pouvoir saisir et enregistrer en base le nom du fabriquant du produit, et l'on voudrai pouvoir saisir et enregistrer en base le nom du gérant du magasin. Comment pourrai t on structuré la base de donnée pour qu'elle puisse sous symfony 1.2 permettre ce type d'opération: ajout de champ formulaire et possibilité d'enregistrer les nouvelles saisies sans moidifier la structure de la BDD?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    Je ne pense pas que tu dois modifier la structure de tes données à chaque fois que ton client veut ajouter un nouveau champ. Il vaut mieux créer des tables parametrables. C'est plus compliqué à mettre en oeuvre mais ca te donnera un maximum de souplesse.

    Exemple avec les utilisateurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    //cette table enregistre les infos de base des utilisateurs
    tbl_user:
    - id 
    - nom 
    - prenom 
    (1, jean, martin)
    (2, alice, dupont)
     
    //Cette table enregistre les nouveaux champs que ton client a configurés
    tbl_user_param:
    - id
    - field
    - type
    (1, adresse, alphanumeric)
    (2, email, email)
    (3, mobile, telephone)
    (4, date de naissance, date)
     
    //Cette table enregistre les données paramétrables
    tbl_user_data:
    - user_id (fk)
    - user_param_id (fk)
    - value
    (1, 1, "3, rue du bac");
    (1, 2, "jmartin@yahoo.fr");
    (2, 2, "alice@gmail.com");
    En revanche s'il ajoute un champ une fois par an, il vaut mieux qu'il paye une journée de maintenance pour ajouter ce champ. C'est relativement simple avec Symfony.

  3. #3
    Membre chevronné
    Avatar de bricecol
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 364
    Par défaut
    je confirme la solution ci-dessus. c'est le plus souple et le plus propre a faire.

Discussions similaires

  1. Schéma du modèle de données : reverse engineering
    Par slefevre01 dans le forum Designer
    Réponses: 2
    Dernier message: 20/08/2005, 09h38
  2. [JTree] Quel modèle de données utiliser ?
    Par speedster dans le forum Composants
    Réponses: 2
    Dernier message: 11/07/2005, 20h44
  3. Réponses: 10
    Dernier message: 22/10/2004, 14h35
  4. Réponses: 7
    Dernier message: 12/10/2004, 16h43
  5. [retro-conception] Passage au modèle de données
    Par liliboc dans le forum Outils
    Réponses: 5
    Dernier message: 09/07/2004, 11h01

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