I need to allow the creation of a user form using the web interface in my software. those. they create a question, type (text, radio, checkboxes, etc.), parameters, if necessary (radio / check), and then add and continue in this process until they create all the fields in the form.
Requests will not be executed against them, except for viewing / filling / printing, i.e. they add “questionnaires” that can be completed an unlimited number of times (some can be 20 times, several million times).
After some research, it seemed that an EAV-type solution seemed good, with the exception of a large number of negative views on it. Many people suggest using a NoSQL database for this type of situation, but I really don't see the benefits - you still have a form with many fields, and then results with many fields.
There would be one possible value for some fields (text / text_area / date), but many would also have several parameters (radio buttons, select drop-down lists, check boxes).
Here's a sample sample in traditional SQL:
form: creator_id, name
form_field: form_id, order, question, type (text, text, date, radio, selection, verification)
form_field_option: form_field_id, name, value, order (this is used for radio / select / check)
form_result: form_id, application_id (not the name I use, but all the results will belong to the "application")
form_field_value: form_result_id, form_field_id, form_field_option_id, value (if the parameter field is empty, the text field form_field_option_id will be empty)
It would seem quite easy to build forms based on this and get results. It may or may not be exactly effective, but to say that the typical form is 5-30 questions, would it be bad?
Are there any advantages to putting this in a NoSQL database, i.e. Mongo or something like that? If so, can you give me specific examples of what they are and give me a design sample? I have seen many answers, such as "NoSQL is better for this", but I have no experience in this area, because of a faster search for results or what? And what disadvantages will NoSQL use?
thanks