Ваша лучшая ставка будет MongoDB. Его легко выучить (потому что язык запросов - JavaScript), и он обеспечивает хранилище данных без схемы. Я хотел бы создать документ для каждой формы, который определяет структуру формы. Затем всякий раз, когда пользователь отправляет данные, вы можете поместить данные в общую структуру и сохранить их в коллекции на основе имени формы. В MongoDB коллекции похожи на таблицы, но вы можете создавать их на лету. Вы также можете создавать индексы на лету для ускорения поиска.
Проблема, которую вы пытаетесь решить, - это один из основных вариантов использования баз данных, ориентированных на документы, которым является MongoDB. Существует несколько других ориентированных на документы баз данных, но, на мой взгляд, MongoDB имеет лучший API на данный момент.
Прочтите учебник MongoDB Ruby , и я уверен, что вы захотите попробовать.
НЕ используйте реляционную базу данных для этого. Создание таблиц на лету будет ужасным и представляет угрозу безопасности не только для вашей системы, но и для данных ваших пользователей. Вы можете избежать создания таблиц на лету, создав сложную схему, которая отслеживает структуры форм, и для каждого типа поля потребуется собственная таблица. Rails делает это менее болезненным с полиморфными ассоциациями, но это определенно не красиво.