Как выбрать неизвестный набор из известного набора? - PullRequest
0 голосов
/ 05 февраля 2019

Извините, если я неправильно указал проблему в названии.Пример будет более понятным:

Предположим, у меня есть таблицы Users, Topics и Questions в базе данных.Каждый пользователь сначала выбирает некоторое значение topics, а затем задает номер questions для каждой темы, и алгоритм создает исследование из Questions, которые не были ранее решены пользователем. Затем возникает вопрос:

  • Каков наилучший способ SELECT нерешенных вопросов в базе данных?

Естественно, я сначала создал ассоциативную таблицу для вопросов, решаемых с помощьюпользователь с UserId и QuestionId, но тогда я подумал, что лучше хранить нерешенные вопросы вместо решенных вопросов , так как мне нужно SELECT нерешенных.

Поскольку эта совокупность больше, позвольте мне суммировать проблему с двумя вопросами:

  1. Не перегружена ли база данных, если я использую таблицу solvedQuestions для проверкивопрос, был ли он решен или нет, каждый раз?
  2. Можно ли вставлять все вопросы как нерешенные для нового пользователя, если я использую таблицу unsolvedQuestions?(Количество вопросов в будущем меня очень пугает.)
  3. У вас есть какой-нибудь лучший дизайн?

Любая помощь будет оценена.

(Покстати, я использую Entitiy Framework Code First Approach, если это важно, что я так не думаю.)

1 Ответ

0 голосов
/ 05 февраля 2019

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

Что вы подразумеваете под "перегрузкой" в первом вопросе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...