Как сохранять результаты из динамически сгенерированных форм в MongoDb?

Я новичок в MongoDB, но смотрю на него, чтобы решить эту проблему:

В моем приложении есть динамический конструктор форм, который позволяет пользователям создавать собственные опросы, контактные формы и т. д. Я хочу регистрировать все отправленные формы и позволить пользователям, создавшим формы, выполнять поиск и экспортировать свои отправленные данные.

Я исхожу из типичного опыта работы с PHP / mySql и вижу некоторые проблемы при хранении этих данных в базе данных mySql. Каждая форма может иметь любое количество полей всех типов. Мне нужно было бы либо нормализовать мою БД до структуры EAV для хранения данных, либо динамически создать новую таблицу для каждой формы, либо сериализовать данные формы в столбцы TEXT (ick).

«Бессхемный» (или «динамический») характер MongoDb кажется идеальным решением моей проблемы, но моя несложность оставляет меня неуверенным, с чего начать.

  1. Должны ли результаты каждой настраиваемой формы храниться в виде отдельных коллекций?
  2. Должен ли я иметь коллекцию «форм» и встраивать результаты как субдокументы для каждой формы?
  3. Есть ли другой, лучший способ?
  4. Действительно ли MongoDb - хорошее решение для этого, или я далек от базы?

Еще раз сформулирую свою проблему: мне нужно хранить данные переменных и неизвестных структур в удобном для поиска и сортировки виде.

Спасибо!

10
задан thaddeusmt 3 November 2011 в 14:51
поделиться