Я участвую в проекте, чтобы создать систему опроса. Мы выбивали логику для нескольких типов вопросов, и я мог бы использовать второе мнение о том, как лучше всего действовать. Мы работаем на веб-сайте ASP.NET 2.0, используя VB (VS2005) с базой данных Oracle.Матрица множественного ответа в ASP.NET
В нашем сервере oracle мы планируем некоторые таблицы для организации наших данных. Для наших опросов есть таблица, одна для вопросов (ключи определяют, какой опрос продолжается), один для ответов (опять же, ключи определяют, к какому вопросу он относится), и один для сбора ответов. Большинство вопросов возвращают только один ответ, и это довольно легко понять. Однако, когда мы начинаем думать о элементах, которые возвращают несколько ответов, это начинает становиться сложным.
Например, если у нас есть простая матрица 3x3, заполненная флажками. Строки - это дни «понедельник», «среда», «пятница». Столбцами являются такие действия, как «Велоспорт», «Бег», «Вождение». Пользователь проверяет каждый из них, которые они делали в течение определенного дня, поэтому каждая строка может иметь более одного ответа. Еще один, о котором мы хотим подумать, - это то, что, если вместо флажков у нас есть текстовые поля, в которых пользователи пишут, сколько минут они потратили на активность.
До сих пор для сбора ответов мне нравилась идея traversing a list of controls в форме и ведение вкладок по видам элементов управления, которые собирают данные. Поскольку элементы управления создаются в коде, обычно им присваивается идентификатор строки с номером, прикрепленным к концу, чтобы отслеживать, какой тип вопроса он есть, и каково это число.
Вопрос №1: Должны ли данные, возвращенные пользователем, находиться в одной записи базы данных с разделителями для разделения каждого ответа, или каждый ответ получит свою собственную запись?
Вопрос №2: Каков наилучший способ определения ответа на какой ответ (в опросе)?