Выбор из нескольких ключей-кандидатов

Мне может не хватать математического фона, чтобы найти правильный ответ для себя. У меня есть таблицы, настроенные так (нерелевантные столбцы опущены):

Questions
   queID

Answers
   queID
   ansID

Пользователи могут создавать тесты, выбирая определенные вопросы. Ответы - это возможные ответы, которые пользователи могут выбрать для каждого вопроса.

Sessions
   sessID

Когда клиент выбирает группу вопросов для ответа, создается «Сессия».

SessionQuestions
   sqID
   sessID
   queID

Это вопросы, которые пользователь выбрал для данного сеанса.

Где я бью загадку наSessionAnswers уровень. Порядок ответов на вопрос может быть случайным. То есть вопрос с несколькими вариантами ответов с порядком ответов по умолчанию A, B, C может отображаться пользователю как C, B, A. Однако всякий раз, когда они снова рассматривают этот вопрос, он все равно должен быть C, B, A, так что окончательный порядок должен быть сохранен. Моя предварительная таблица такова:

SessionAnswers
   sqID
   ansID
   saOrder

Дело в том, что sqID указывает на queID, но так же и ansID. Это означает, что я мог бы использоватьsessID на этом столе илиsqID, Я не уверен, что выбрать. Эта настройка по-прежнему позволяет сопоставить ansID с ответом, сопоставленным с вопросом, которого нет даже в SessionQuestions, что было бы неверно. Могу ли я улучшить настройку, чтобы избежать этого?

Ответы на вопрос(1)

Ваш ответ на вопрос