Generatore di moduli dinamici con persistenza SQL serializzata

3

Ho un requisito per cui i miei utenti dovranno essere in grado di costruire le proprie forme. Quali possono specificare diversi tipi di dati: Testo Appuntamento caselle di controllo Tutto personalizzabile obbligatorio / facoltativo.

Ho visto un esempio di progettazione di DB qui che suggeriva l'idea di archiviare i moduli, gli elementi del modulo, i tipi di elemento e i valori inseriti degli elementi in tabelle diverse.

Anche se penso che questo sia un buon approccio, voglio vedere se questo potrebbe essere ampliato da un aspetto delle prestazioni.

La mia idea è di archiviare i modelli di modulo e formattare le risposte come oggetti JSON serializzati, in questo modo ridurrebbe il numero di righe memorizzate e le join nelle query?

Qualcuno può pensare a qualche inconveniente nell'usare questo approccio?

Quindi, ad esempio, un modello di modulo è

{
     "formName": "Newsletter Signup",
     "Id": "1",
     "elements":
     [
         {
           "id": "1",
           "label": "First Name",
           "type": "text",
           "required": "true"
         },
         {
           "id": "2",
           "label": "Email Address",
           "type": "text",
           "required": "false"
         },
         {
           "id": "3",
           "label": "Agree to terms",
           "type": "checkbox",
           "required": "true"
         }
     ]
 }

E una sottomissione essendo:

{
         "received": "2016-05-18 09:00:00",
         "formId": "1",
         "elementValues":
         [
             {
               "id": "1",
               "value": "Joe Bloggs"
             },
             {
               "id": "2",
               "value": ""
             },
             {
               "id": "3",
               "value": "true"
             }
         ]
     }
    
posta MNelmes 19.05.2016 - 22:16
fonte

1 risposta

1

Uno svantaggio è che quando si desidera creare un'interfaccia di backend per l'installazione del modulo, è necessario comprendere in che modo i dati JSON vengono utilizzati e interpretati. Anche con un semplice strumento di gestione di database come phpMyAdmin o MS SQL Management Console, qualcuno potrebbe facilmente capire come è strutturato il modulo e come rendere un campo obbligatorio o copiare un intero modulo.

Con solo JSON ci vorrà molto più tempo per capire. Una gamma molto più ampia di persone può utilizzare database semplici, molti più di JSON.

    
risposta data 20.05.2016 - 00:08
fonte

Leggi altre domande sui tag