Я видел много тем с вопросами о выборе базы данных для механизма голосования, но мои ответы немного отличаются. У меня есть приложение, содержащее графический интерфейс, в котором может быть несколько полей/переключателей или их комбинация. GUI не исправлен. На основе отправленной формы динамически генерируется XML-ответ.
Таким образом, если есть форма, может быть 10000 разных людей, отправляющих одну и ту же форму. и у меня будет 10000 различных форм (числа будут увеличиваться).
Теперь у меня есть следующие 2 варианта. Храните каждый xml в том виде, в котором он есть в базе данных (я не выбрал использование реляционной базы данных или базы данных nosql, такой как mongodb.) Или анализируйте xml и создавайте таблицы для каждой формы. Таким образом, количество столов будет огромным.
Теперь мне нужно создать механизм голосования, который в основном просматривает все XML-файлы, созданные для конкретной формы, т.е. 10000 XML-файлов, и извлекает отправленные ответы (Примечание: XML-файл сложен, потому что 1 форма может иметь несколько элементов ответа), а затем сделать голосование, чтобы узнать, сколько людей дали тот же ответ.
Мои вопросы:
- Должен ли я использовать реляционную базу данных или NOSQL (MongoDB/Redis или аналогичные)?
- Нужно ли мне сохранять XML-документы в том виде, в котором они есть в базе данных, или мне следует проанализировать их, преобразовать в таблицы и сохранить? Любой другой подход, которому я могу следовать.
Я использую JAVA/J2EE для текущей разработки.