Dati dinamici dei moduli persistenti

1

La mia applicazione utilizza un database relazionale, ma è richiesto un requisito per visualizzare un modulo di sondaggio per gli utenti alla fine di ogni trimestre / anno, ecc. Capisco che questi dati siano probabilmente usati per fare qualche analisi nel prossimo futuro ma il problema è il modulo avrebbe molte coppie di valori chiave e sono sicuro che continuerà a cambiare.

Ho fatto alcune ricerche e ho scoperto che le persone suggeriscono di avere database NoSQL per questo tipo di cose, ma non posso cambiare il mio database per una sola funzione, l'altra opzione è di avere una colonna JSON nella tabella e nell'archivio del database tutte le coppie chiave-valore lì.

Non ho abbastanza esperienza per sapere quali possono essere i compromessi o se ci sono altre alternative?

    
posta CodeYogi 20.12.2017 - 12:50
fonte

1 risposta

2

Un sacco di coppie chiave-valore con requisiti in evoluzione è il caso d'uso per un cosiddetto EAV modello, che può essere implementato perfettamente all'interno di un sistema di DB relazionale. Anche se a volte considerato un antipattern, ci sono alcuni casi in cui l'uso di questo modello è giustificato, e dalla tua domanda, sembra che la tua situazione sia una di quelle. Vedi anche questa domanda precedente per ulteriori informazioni sui professionisti e contro dei modelli EAV.

Ad esempio, per i tuoi sondaggi, posso immaginare che le e ntities siano probabilmente le domande, i a ttributes sono i possibili tipi di risposta (risposta sì / no, testuale risposta, risposta da un elenco di valori predefiniti, valore intero su una scala da 0 a 10, ecc.) e i alori v sono le risposte effettive che devono corrispondere al tipo di risposta. Certo, questo approccio richiede un ulteriore perfezionamento, ma penso che tu abbia l'idea.

    
risposta data 20.12.2017 - 13:27
fonte