Я пишу небольшое приложение для викторины и пытаюсь структурировать базу данных.Основная идея состоит в том, чтобы пользователь отвечал на фиксированное количество вопросов (1-10 ответов) и генерировал результат на основе этих ответов.
У меня возникли некоторые проблемы с реализацией структуры базы данных - я не уверен, что все ответы в одной строке, кроме разных столбцов, или одна строка для каждого ответа (что приводит к множеству строк)только три или четыре столбца)
Диаграмма базы данных, о которой я думал, выглядит примерно так:
Один пользователь может иметь только один результат, и один результат принадлежит одному пользователю
Один пользователь может ответить на множество вопросов, один ответ принадлежит одному пользователю
Каждый ответ относится только к одному вопросу, но один вопрос может иметь несколько ответов(многие пользователи отвечают)
Это мои таблицы базы данных с этой реализацией:
Таблица результатов
| ResultID (PK) | UserID (FK) | TotalScore | ResultText|
Таблица пользователей
| UserID (PK) | Name | Email | Name |
Таблица ответов
| AnswerID (PK) | QuestionID (FK) | UserID (FK) | Answer |
Таблица вопросов
| QuestionID (PK) | Question |
Эта структура создает девять новых строк для законченного теста, который выглядит какне будет ненужного «пробела» в базе данных, если они могут быть помещены в одну строку с использованием столбцов для каждого вопроса (вопрос 1 - вопрос 9).
Однако это вызвало у меня некоторые проблемы с JPA и Hibernate, посколькуЯ должен был создать переменные для каждого вопроса (что привело к тонне избыточности).Этот подход должен, по крайней мере, позволить мне иметь только один массив List для хранения всех девяти вопросов.
Меня беспокоит количество строк, которые будут занимать базу данных.Приблизительно 10 000–15 000 человек ответят на этот вопрос, так что более 90 000 строк только для этой простой реализации будет слишком много, чтобы повлиять на скорость запросов к БД, или это нормально, чтобы сохранить его как выше?