Матрица множественных ответов в ASP.NET - PullRequest
1 голос
/ 05 декабря 2008

Я участвую в проекте по созданию системы опроса. Мы выработали логику для нескольких типов вопросов, и я мог бы использовать второе мнение о том, как лучше поступить. Мы работаем на веб-сайте ASP.NET 2.0, используя VB (VS2005) с базой данных Oracle.

На нашем сервере Oracle мы планируем создать несколько таблиц для организации наших данных. Есть таблица для наших опросов, одна для вопросов (ключи определяют, в каком опросе она проводится), одна для ответов (опять же, ключи определяют, к какому вопросу он относится) и одна для сбора ответов. Большинство вопросов дают только один ответ, и это довольно легко понять. Однако, когда мы начинаем думать об элементах, которые возвращают несколько ответов, это начинает усложняться.

Например, если у нас есть простая матрица 3х3, заполненная флажками. Строки - это дни «понедельник», «среда», «пятница». В столбцах указаны такие действия, как «Езда на велосипеде», «Бег», «Вождение». Пользователь проверяет каждый из них, который он сделал за данный день, таким образом, каждая строка может иметь более одного ответа. Еще один вопрос, о котором мы хотим подумать, это то, что если вместо флажков у нас есть текстовые поля, в которых пользователи записывают значение, сколько минут они потратили на занятие.

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

Вопрос № 1: Должны ли данные, возвращаемые пользователем, находиться в одной записи базы данных с разделителями для разделения каждого ответа, или каждый ответ должен иметь свою собственную запись?

Вопрос № 2: Какой лучший способ определить, какой ответ идет с каким ответом (в опросе)?

Ответы [ 2 ]

0 голосов
/ 05 декабря 2008

Если предположить, что пространство и скорость вряд ли будут серьезными ограничивающими проблемами в этой системе, я предлагаю вам поддерживать нормализацию своих данных

поэтому ответ на вопрос 1 таков: каждый ответ получает свою запись; с порядковым номером при необходимости

и ответ на вопрос 2: по внешним ключам

0 голосов
/ 05 декабря 2008

Вопрос № 1: Должны ли данные, возвращаемые пользователем, находиться в одной записи базы данных с разделителями для разделения каждого ответа, или каждый ответ должен иметь свою собственную запись?

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

...