Page 1 sur 1

Créer des tables/champs à la volée??

Posté : 27 avr. 2009, 23:45
par Raymond Domenek
Bonsoir la communauté
Dans le cadre d’un futur projet, je vais avoir la problématique suivante à résoudre : la conception et le développement d’une application destinée à gérer de l’évènementiel (congrès, conférences,…).
Pour chaque évènement, un formulaire sera crée et mis en ligne, permettant ainsi à des utilisateurs de s’inscrire à l’évènement.
Les données seront stockées dans une base de données.
La difficulté de ce travail de conception réside dans le fait que chaque évènement aura ses particularités. Ainsi, d’un évènement à l’autre, chaque formulaire sera différent du précédent (champs et nombre de champs). Pourtant, il faudra que toutes les informations soient stockées dans la même base.
L’application doit permettre de « construire » chaque formulaire, c'est-à-dire qu’à chaque nouvel évènement, la personne chargée de les gérer doit avoir l’interfaçage suffisant pour bâtir elle-même son formulaire (sans avoir à faire appel à un développeur) et y mettre ce qu'elle veut dedans (type de champs et nombre de champs).

Je suis donc dans l’impossibilité de définir une base « figée », c'est-à-dire avec un nombre de tables/champs fixés à l'avance. Ma base de données (dans sa structure) sera susceptible de varier suivant les champs à rajouter dans les formulaires.
Ma question est donc la suivante : comment générer automatiquement les tables/champs nécessaires à chaque fois qu’un formulaire un peu trop différent des autres sera crée ??

Peut-être que certains ont déjà rencontré ce genre de problématique…
Merci d’avance, en tout cas, pour vos réponses :)
Yann

Posté : 28 avr. 2009, 10:34
par Kemper
Ta structure de base peut très bien être figée, les informations permettant la création d'un formulaire deviendront des données de la base (des lignes) plutôt que des éléments de structures (des noms de colonnes).

En gros un truc comme ça :

Code : Tout sélectionner

formulaires ([u]id_formulaire[/u], libelle_formulaire, date_limite_validite) champs_formulaire ([u]id_champ[/u], type_donnee, position, fk_id_formulaire#) reponses ([u]id_reponse[/u], fk_id_champ)
A étoffer pour avoir un truc dynamique complet, permettant de faire des calculs et des manipulations facilement derrière.

Essaie de rechercher sur le forum car j'ai déjà vu des messages avec la même demande. Tu peux aussi te renseigner sur les classes permettant de créer des formulaires, ça pourrait être utile.

Généralement, créer des tables, modifier la structure de base dynamiquement c'est une mauvaise idée et ça montre un problème de conception.

Posté : 28 avr. 2009, 21:32
par Raymond Domenek
Merci Kemper pour ta suggestion.
Ca me paraît très interessant comme idée, je vais creuser dans ce sens.

Salutations :) :wink: