Я бы рекомендовал следующую структуру:
- Вопросы
- имеет 0: n ответов
- атрибуты: id (int PK), вопрос (текст)
- Ответы
- имеет 1 вопрос
- имеет 0: n ответов
- атрибуты: id (int PK), answer (text)), идентификатор вопроса (int FK)
- Ответы
- имеет 1 ответ
- (имеет 1 вопрос через ответ)
- имеет1 респондент (пользователь)
- атрибуты: идентификатор (int PK), идентификатор ответа (int FK), идентификатор пользователя (int FK)
- Users
- имеет 0: n ответов
- атрибуты: id (int PK) + все, что вам нужно хранить о пользователях
(PK = первичный ключ, FK= внешний ключ)
Хранить weight
как атрибут вопроса или ответа.Вы на самом деле не описали, что такое weight
, поэтому сложно сказать.
Вот записи по одному вопросу, и кто-то отвечает на этот вопрос.В этом примере Жана Люка Пикара спрашивают: «Сколько огней?»с возможными ответами «3», «4» и «5».Конечно, он выбирает «4», за что не получает weight
(«5» - правильный ответ).
Question: (QID=1, Question="How many lights?")
Answer: (AID=1, QID=1, Answer="3", Weight=0)
Answer: (AID=2, QID=1, Answer="4", Weight=0)
Answer: (AID=3, QID=1, Answer="5", Weight=1)
Response: (RID=1, AID=2, UID=1)
User: (UID=1, Name="Jean Luc Picard", ...)