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"
}
]
}