Strutturare un database di tipo questionario - gestione della validazione

JellyBelly

Utente Attivo
4 Mar 2008
59
0
0
www.jellybellydev.it
Ho dei problemi nel disegnare il mio database e spero in un vostro consiglio.

Devo realizzare un progetto di tipo questionario con ZF+Doctrine.

La strutturazione del questionario e' da realizzare tutta dinamicamente. Quindi l'amministratore dovra' creare una checklist composta da diversi item dove gli item sono le domande.

Ogni item puo' essere un semplice input text oppure una select alla quale devono essere attaccate delle possibili opzioni.

Fino a qui tutto bene.

Il mio problema sta nel fatto che anche la validazione di questi item e' da implementare dinamicamente ed ho pensato di fare questo grazie all'aiuto del database.
Esempio: la risposta all'item x puo' essere obbligatorio o meno allora ho pensato di aggiungere un campo flag al record in modo che alla costruzione dell'elemento nel form dinamico aggiungio l'attributo 'required' o meno.
Ma prendiamo il caso che io volessi implementare una validazione dinamica del tipo: se il valore dato l'item x==3 allora l'item y==5. Come posso strutturare tutto questo?
Oppure altro caso di validazione: il valore dato all'item x deve essere la somma dei valori assegnati a y e z altrimenti messaggio di errore.

Sapreste darmi una dritta per gestire tutto questo sia grazie al database che a devi validatori custom Zend_Validate?

Grazie
 
Problema interessante. Hai due soluzioni, una semplice, l'altra piuttosto complessa; la scelta è da fare a seconda del target a cui si rivolge la tua applicazione:
  1. permettere al creatore del questionario di inserire codice PHP per la validazione, che restituisce true o false, da eseguire poi con eval();
  2. creare un'interfaccia ad-hoc per la gestione delle regole di validazione, ma è lungo e per niente semplice;
Quindi, se non c'è rischio che l'utente faccia danni inserendo codice PHP (es. se è l'amministratore del sito), e se ti aspetti che conosca il PHP, puoi optare per la prima.
Altrimenti, dovrai pensare alla seconda, che, come ho già detto, non è facilmente realizzabile.
 
[OT]
Scusa se rispondo solo ora, ma non ho ricevuto nessuna mail di notifica della tua risposta :S
[/OT]

Purtroppo sono nella situazione in cui sono obbligato ad effettuare l'interfaccia ad-hoc.
Mi daresti qualche dritta su come potermi muovere?
Io sono settimane che ci rifletto su e per i casi semplici il database viene in mio soccorso, ma in casi molto complessi non so nemmeno da dove iniziare, ne quale struttura dare al db, ne come chiamare o impostare i validatori custom!
In altre parole help! :D
 

Discussioni simili