0

У меня есть 3 таблицы, которые я пытаюсь выяснить, как установить отношения. База данных предназначена для отслеживания вопросов и ответов на вопросы. Пользователь может ответить на многие вопросы. В вопросе может быть много ответов. Ответ может быть связан только с одним вопросом. Ответ может использоваться многими пользователями.Устранение многих отношений

USER: UserId, имя и т.д. ....

ОТВЕТ: идентификатор ответа, AnswerText, QuestionID

ВОПРОС: QuestionID, QuestionText

Я подумываю добавить таблицу сломать составляет:

USER_QUESTION_ANSWER: ид, AnswerId, QuestionID, Userid

Answerid, QuestionID и Идентификатор_пользователя бы все FKS к respe таблицы. Однако это кажется неправильным. Кажется, что это должно быть просто:

QUESTION_ANSWER: идентификатор, QuestionID, Answerid

но проблема я бегу в это мне нужно, чтобы отслеживать, что пользователь дал какие ответы. Таблица ANSWER уже отслеживает ответы на какие вопросы. Должен ли я добавить2 новые таблицы?

USER_ANSWER: идентификатор, Userid, Answerid

QUESTION_ANSWER: идентификатор, QuestionID, Answerid

+0

Имея одну работу в образовательном учреждении, я хотел бы использовать другое имя. «Ответ» - это вопрос. «Ответ» - это то, что пользователь выбирает, когда он/она проводит тест. «Ответ» и «Оценка» - некоторые из самых неоднозначных имен в образовательной индустрии. На вопрос «кто из них млекопитающий?», С возможными ответами «BlueJay, Cobra, Perch, and Dog», Джон ~ ответил «Собака». Его ответ был правильным, потому что он соответствовал правильному ответу .................. Неоднозначность вызывает больше проблем, чем все мы понимаем, я думаю. – granadaCoder

ответ

1

Я бы палку с USER_QUESTION_ANSWER таблица за sonally. Это не на 100% нормализовано, потому что у вас есть QuestionId в таблице ANSWER, а также таблица USER_QUESTION_ANSWER, но этот тип де-нормализации не является чем-то необычным. Это упрощает запросы и отчеты. Ваш ПЕРВИЧНЫЙ КЛЮЧ на USER_QUESTION_ANSWER будет на колонках UserId, AnswerId, так как до уникальности идет QuestionId не имеет значения.

В основном то, что вы будете в конечном итоге с такой:

enter image description here

+0

Спасибо, Кеннет, я думаю, что это сработает чудесно! – BattlFrog

0

Я думаю, вам нужно 4 таблицы: USER, ВОПРОС, ОТВЕТ (Id, описание) и таблицу, как запишем отношения (идентификатор пользователя, вопрос идентификатор, идентификатор ответа) УАК

Легко подсчитать (сколько ответов пользователя) и отчетливый (один пользователь с большим количеством вопросов с одним ответом по вопросу)

Смежные вопросы