Я пытаюсь реализовать викторину с множественным выбором и хочу сохранить все свои вопросы и ответы в базе данных SQLite. У меня будет много вопросов, и для каждого вопроса будет отображаться 2 или более возможных ответа.
Мой вопрос: как мне хранить вопросы и ответы в базе данных? У меня есть две идеи для схемы (первичный ключ выделен жирным шрифтом)
- как (многие для многих)
вопросы ( questionID: int, questionString: String, correctAnswerID: int)
ответы ( answerID: int, answerString: String)
questions_and_answers (questionID, answerID)
2.
вопросы ( questionID: int, questionString: String, correctAnswerID: int)
ответы ( answerID: int, answerString: String, questionID: int foreign key)
Я не уверен, какой из них лучше, или есть другой способ?
Может быть, questions_and_answers
станет очень большим и вызовет длительные времена поиска и проблемы с памятью? Опять же, я полагаю, что question_and_answers
будет индексироваться на первичных ключах. Во второй схеме answers
будет индексироваться на answerID
, а не questionID
? что означает, что время поиска увеличилось бы, поскольку всю таблицу нужно было бы искать?
Может быть от 10 000 до 20 000 ответов. (опрос может запускаться на мобильном устройстве, и вопросы необходимо будет показывать "мгновенно" )
Примечание. Я не ожидаю, что там будет много совпадений ответов между вопросами. Я бы не думал, что количество перекрытий будет означать меньшее количество хранимых данных, учитывая дополнительное пространство, требуемое таблицей questions_and_answers