Как хранить данные из динамической формы с полями с множественным выбором.
Я читал различные сообщения, и во всех примерах есть только ключ списка, ввод значения. Но если в форме есть множественный выбор. как лучше всего хранить данные. Я не ищу решение NoSQL.
текущий дизайн
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??)
Образец данных таблицы формы
| form_id | form_name |
|:-------:|:---------------:|
| 1 | Enquiry Form |
| 2 | Test Drive Form |
| 3 | Feedback Form |
Образец Form_elements
| 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 пример данных
| id | value | group |
|:--: |:-----: |------- |
| 1 | red | color |
| 2 | blue | color |
| 3 | green | color |
| 4 | Dell | brand |
| 5 | HP | brand |
образец json опубликован
{
"firstName": "john",
"lastName": "Doe",
"color": "red"
}
Таблица form_submit будет иметь следующие строки
| form_id | Column_id | value |
|:-------: |:---------: |:-----: |
| 1 | 1 | John |
| 1 | 2 | Doe |
| 1 | 3 | Red |
| 1 | 1 | James |
| 1 | 2 | Smith |
| 1 | 3 | Blue |
если динамическая форма имеет несколько вариантов выбора, образец json будет опубликован
{
"firstName": "John",
"lastName": "Doe",
"color": [
"red",
"green",
"blue"
]
}
как вы храните эти данные.
Нужно ли нам хранить их в той же таблице form_submit. или хранить в другой таблице
form_submit
? Не похоже, что он поддерживает ввод нескольких значений в форму. т.е. если один человек вводит один набор значений, а другой вводит другой набор, не похоже, что это поддерживается этой таблицей. Вам понадобится еще один столбец, напримерsubmit_id
, который представляет материалы каждого человека. Подумай об этом, тогда я или кто-то другой смогу дать ответ - person Nick.McDermaid   schedule 06.07.2017