So speichern Sie Daten aus dynamischen Formularen mit Mehrfachauswahlfeldern.DB Design zum Speichern dynamischer Formulardaten mit Mehrfachauswahlfeldern
Ich habe verschiedene Post gelesen und alle Beispiel hat nur Listenschlüssel, Werteingabe. Aber wenn das Formular Multi-Select-Eingabe hat. Was ist der beste Weg, um die Daten zu speichern? Ich suche keine NoSQL-Lösung.
aktuelle Design
forms
-----
id (PK)
name
(other fields)
form_elements
-------------
id (PK)
form_id (FK to forms.id)
element_type_id (FK to element_types.id)
name
list_group (nullable, it will be related only for multiselect inputs)
(other fields)
element_types
-------------
id (PK)
name
list_values
-------------------
id (PK)
value
group
(other fields??)
Formtisch Abtastdaten
| form_id | form_name |
|:-------:|:---------------:|
| 1 | Enquiry Form |
| 2 | Test Drive Form |
| 3 | Feedback Form |
Form_elements Probe
| id | form_id | element_type_id | name | list_group |
|:--:|:-------:|:---------------:|:---------:|:-------:|
| 1 | 1 | 1 | firstName | |
| 2 | 1 | 1 | LastName | |
| 3 | 1 | 2 | color | color|
element_types
| id | name |
|:--: |:--------: |
| 1 | text |
| 2 | checkbox |
| 3 | radio |
list_values Beispieldaten
| id | value | group |
|:--: |:-----: |------- |
| 1 | red | color |
| 2 | blue | color |
| 3 | green | color |
| 4 | Dell | brand |
| 5 | HP | brand |
Probe json posted
{
"firstName": "john",
"lastName": "Doe",
"color": "red"
}
form_submit Tabelle die folgenden Zeilen
| form_id | Column_id | value |
|:-------: |:---------: |:-----: |
| 1 | 1 | John |
| 1 | 2 | Doe |
| 1 | 3 | Red |
| 1 | 1 | James |
| 1 | 2 | Smith |
| 1 | 3 | Blue |
wenn die dynamische Form geschrieben Multi haben wählen Sie die Option Probe json hat wird
{
"firstName": "John",
"lastName": "Doe",
"color": [
"red",
"green",
"blue"
]
}
Wie speichern Sie diese Daten.
Müssen wir es in derselben form_submit-Tabelle speichern. oder speichern in verschiedenen Tabelle
Für welchen Zweck speichern Sie es? Soll es in ein anderes System hochgeladen oder darüber berichtet werden? Wenn es zu berichten gibt, welche Art von Berichten sind sie? Brauchst du einen Bericht, der all die Leute zählt, die grün gewählt haben? Oder ist es nur eine Kopie davon, was die Leute ausgesucht haben? Oder haben Sie eine Logik, die Antworten übergeht und Noten zuordnet? –
Sie haben keine Einschränkungen beschrieben, die uns dabei helfen könnten, zu entscheiden, ob Sie den JSON einfach so stopfen können oder ob Sie eine Bridge-Tabelle erstellen sollen, die eine Viele-zu-viele-Beziehung definiert. Der "richtige" normalisierte Weg besteht darin, eine Bridge-Tabelle zu erstellen, aber wir kennen Ihre Einschränkungen nicht. –
@ Nick.McDermaid müssen wir die Rohdaten herunterladen/an ein anderes System anschließen. Auch möchten wir Berichte haben, wie die Anzahl der Farben ausgewählt etc. Wir verwenden ms sql server 2014./Frühling MVC. Ich möchte nicht in JSON speichern. Ich speichere lieber in Tabellen für komplexe Abfragen. Also ich suche ein bestes DB-Design um dies zu unterstützen – Mukun