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

Schéma Discussion :

Stocker les données d'un formulaire [MCD]


Sujet :

Schéma

  1. #1
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut Stocker les données d'un formulaire
    Bonjour

    Je viens vers vous car j'aimerais avoir un conseil de conception sur une partie de mon système de données. Je vais essayer de présenter la chose dans sa globalité, mais je pense que cela va être compliqué.

    Je programme un site Internet qui est en fait un système de sites. J'ai une page et une seule page qui répond à tous mes DNS. Grâce au MemberShip du FrameWork 2.0 je gère l'accès aux sites par l'URL qui devient une "application" dans le MemberShip. Ensuite, le code principal de ma page plonge dans la base de donnée pour trouver les modules pour remplir la page voulue dans le site voulu. Puis chaque module dispose de son sous système de données pour se remplir.

    Ma préoccupation se situe sur le stockage des données de l'utilisateur enregistré sur un site. Le MemberShip me donne la possibilité de gérer tout ce qui concerne la connexion et la gestion des droits. Mais j'ai besoins de gérer d'autres infos. Par exemple, sur un site associatif j'ai besoins de gérer l'adresse mail (c'est pris en charge par le MemberShip, au besoins ça sert d'identifiant) mais également le nom et le prénom, et c'est tout. Pour mon site de rencontre, là j'ai besoins de gérer beaucoup plus de chose : ville de résidence, date de naissance, loisirs, taille, poids et description. Vous l'aurez compris, plusieurs types de données à stocker. Et surtout, contrairement au premier site, il faut que je fasse des requêtes et que je stocke les critères de recherche.

    Enfin, j'ai besoins de construire des formulaires pour gérer toutes ces données au niveau utilisateur. J'ai fabriqué un module qui gère les formulaires en les nourrisant à partir d'une table qui contient la description des formulaires. J'aimerais beaucoup garder ce principe car il est trés souple et me permet de faire autant de formulaire que je veux sur autant de site que je veux.

    Mais vient ensuite la problématique de stockage des données. Je suis parti sur une idée de stockage vertical. Donc, en fonction du descriptif du champ de formulaire je sais quel type de données je vais stocker et je rentre dans ma table un identifiant de donnée, un identifiant d'utilisateur, le nom de la donnée et sa valeur. Mais j'ai de gros problème pour faire des requêtes là dessus. Et ensuite je rencontre des soucis pour gérer les données qui ne sont pas gérée par l'utilisateur tel que la période d'abonnement.

    Une autre diée (que je n'ai pas mis en oeuvre, mais qui m'a paru pas trop mal) était de rester sur un stockage Horizontal et prévoir une quantité de champ de chaque type de donnée :
    - Identifiant de la ligne
    - Identifiant de l'utilisateur
    - Champ Numérique 1
    - Champ Numérique 2
    - Champ Numérique x
    - Champ date 1
    - Champ date 2
    - Champ Date x
    - Champ text 1
    - Champ text 2
    - Champ text x

    Ensuite, je mets une table dérivée pour le stockage des listes de choix. Et je récupère mon module de fabrication de champ en logant le nom du champ qui va recevoir la donnée dans la description du champ de formulaire. Mais là, j'atteins des limites (alors que pas dans l'autre cas). Par exemple, si j'ai 5 champs numériques, mais que pour un site donné j'ai besoins de 6 champs : je suis bloqué. Par contre, je n'ai plus de problème pour faire mes requêtes et stocker mes critères de recherche et gérer les abonnements.

    Voilà, je crois avoir tout présenté. Alors ma question est assez simple dans son expression : quelle solution vous parait la meilleure : la première, la seconde ou une autre (dans ce cas, la quelle)?

    Je suis ouvert à toute proposition.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    Difficile de répondre...

    Un principe général sur la conception des bases de données quand même :
    Un modèle de données doit résister aux évolutions
    Tu as bien compris que si tu prévois 5 colonnes numériques et qu'il t'en faut 6, tu es foutu. Donc ce n'est pas e bon modèle.

    Sinon pour t'aider à concevoir ton modèle, il y a des tutoriels Merises qui te seront d'un grand secours :

    http://sqlpro.developpez.com/cours/modelisation/merise/

    Et sinon, pour ton cas particulier, tu pourrait t'orienter vers la modélisation par métadonnées.

    Bon courage.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 240
    Points : 36 696
    Points
    36 696
    Par défaut
    Certaines bases de données permettant de stocker du texte en format "libre" (blob de mysql ou text de PostgreSQL) vous pourriez peut être utiliser cela comme "conteneur" d'un enregistrement "formatté" (type JSON ou XML).

    Si vous devez faire des recherches compliquées sur le contenu de vos conteneurs, regardez ce que sait faire Tsearch2 côté PostgreSQL.

    Ceci dit, les bases de données sont faites pour des données "bien"/"fortement" structurées". Si on y mélange des informations faiblement structurées, les solutions existent mais elles sont parfois limité aux domaines particuliers pour lesquelles elles ont été conçues.

    Il vous sera sans doute nécessaire de préciser votre cahier des charges et de bencher différentes solutions.
    -W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci pour voter aide les gars.

    Je m'aperçois que j'ai oublié de préciser un truc important : c'est SQL Server 2005 et rien d'autres. Du coup, ça doit peut être limiter les choses, mais je n'ai pas le choix.

    Ensuite, je crois que je vais aller voir l'histoire des métas données, aprés une lecture rapide, ça m'a l'air pas mal du tout.

    Si j'ai des soucis de compréhension, je reviens faire une tour ici.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/08/2012, 16h35
  2. Réponses: 7
    Dernier message: 03/10/2011, 15h12
  3. stocker les données de formulaire en xml
    Par joulive dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 05/09/2009, 12h21
  4. Réponses: 5
    Dernier message: 06/11/2005, 12h26
  5. [Struts] Interêt de typer les données d'un formulaire ?
    Par Gildas Huart dans le forum Struts 1
    Réponses: 9
    Dernier message: 21/04/2005, 17h39

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