Как хранить и отображать с помощью HTML m: n массива (двумерная таблица)

#html #data-structures #orm #relationship #denormalization

#HTML #структуры данных #orm #взаимосвязь #денормализация

Вопрос:

Как организовать информацию (в модели MVC), чтобы представить этот реальный пример:

Опрос — может содержать несколько вопросов и несколько человек, которые на них ответят

Вопрос — только один ответ — да или нет

PersonAnswer — тот, который отвечает на вопрос

Пример отображения:

Информационный массив от N до M

Моя реализация на данный момент такова:

DB

Опрос — Вопрос — один ко многим

Вопрос — Персональный ответ — один ко многим

код контроллера: — псевдокод

  1. Опрос.Вопросы поиска
  2. Выполните цикл для каждого вопроса и найдите все ответы
  3. результатом является map — Survey = [Вопрос1: список ответов1, Вопрос2: Список ответов2]
  4. При циклическом просмотре HTML-кода на карте я могу отображать информацию

Проблемы моего подхода:

  1. имена пользователей заголовка должны быть вычислены
  2. необходима сортировка списков, иначе ответы будут смешанными
  3. Как правильно управлять, если пользователь не ответил на вопрос — должен ли я сохранить его в базе данных?

Обновление: Я использую java и mysql.

Ответ №1:

Мой подход к этому вопросу сначала касался бы базы данных:

В моем случае я бы сделал это так:

 Have a table of 

  users->represents db users
  surveyitems->with item(questions) and id(probaby autoincrement integer pkey),

 surveycheks->representing the users and their checks having({
    id(pkey),
    checkid(foreign_key ->to surveyitems table id)
    yeschecked(representing the yes)
    nochecked(representi)ng the nos
  })
  

Тогда в ваших представлениях, например, при использовании yii php framework

 use gii tool to generate models and crud //here you can use your own
  logic of saving data to db

  On your survey form
   1. load all surveys from table surveyitems with id and items()// display  item
   2. Have radio buttons with values of id(from survey items);

   3.. when saving loop through all checked yes or nos and store them in surveycheks
  

Я надеюсь, вы поняли идею