2015-05-27 3 views
0

Я создаю настольное приложение, которое будет проверять знания пользователей конкретного предмета, задавая вопросы с несколькими вариантами выбора. Каждый вопрос содержит уникальный номер вопроса, проблему, четыре варианта, правильный ответ, тему и трудности. У меня есть база данных такого вопроса. Для каждого пользователя я хочу отслеживать вопросы, которые он пытался, чтобы я мог предоставить ему анализ прогресса, а также обеспечить лучшее качество вопроса. Как я могу хранить требуемые данные для каждого пользователя?Какой тип данных используется для хранения данных пользователей?

У меня уже есть база данных деталей пользователей и один из вопросов в mySQL.

+1

Вам нужно несколько таблиц с внешними ключами. – SLaks

+0

http://en.wikipedia.org/wiki/Foreign_key – SLaks

ответ

2

Вы должны иметь три таблицы:

  • Пользователи
  • Вопросы
  • результаты

В таблице пользователи будут иметь первичный ключ, например, PRIMARY KEY (идентификатор пользователя)

В таблице «Вопросы» также будет первичный ключ. Наконец, таблица «Оценки» будет иметь первичный ключ и два внешних ключа, ссылающихся на таблицы пользователей и вопросов, например.

PRIMARY KEY (scoreID),

FOREIGN KEY (идентификатор пользователя) Лит Users (идентификатор_пользователя),

FOREIGN KEY (QuestionID) Лит Вопросы (QuestionID)

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

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

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