Абстракция важна при проектировании баз данных и в тех случаях, когда в некоторых случаях выполнимо просто поместить все данные в поле JSON (скажем, полезную нагрузку с конечной точки), но если это не так, то есть вызывающие способы хранения данных во многих случаях.более единообразная мода.Ниже я расскажу о том, как начать разработку приложения для опроса на высоком уровне.
1) Сначала вы должны демонстративно иметь таблицу опроса на самом верхнем уровне, чтобы вы могли создавать несколько экземпляров опроса (скажем, в разное время илидля разных групп), которые могут содержать разные типы вопросов.Это также будет содержать дату, время окончания, группу и т.д. ...
2) Затем для следующего уровня я создам общую таблицу вопросов.Это будет содержать внешний ключ к опросу и поле символа для задаваемого вопроса.
3) Затем я создам новую таблицу для каждого типа вопроса, который вы хотите поддержать, который наследуется от общеготаблица вопросов во второй части, так что они автоматически получают внешний ключ и символ поля вопроса.
3.1) Пример множественного выбора.Чтобы развить это, я бы также создал таблицу ответов с несколькими вариантами ответов.Это просто будет иметь внешний ключ к заданной таблице вопросов с множественным выбором, а затем поле ответа для доступных вариантов ответа на указанный вопрос.Это позволило бы вам повторно использовать ответы с несколькими вариантами ответов для выбора.
4) И наконец, это еще более важная настройка опроса, а не отвечающая сторона опроса, еще одна причина не помещать все в JSON;).Для ответа я бы реализовал таблицу SurveyResponse на верхнем уровне, а затем другую таблицу, которая имеет внешний ключ к SurveyResponse для каждого вопроса в упомянутом опросе из части 1.
Надеюсь, что это поможет в каком-то направлении.Удачного кодирования!