Какова общая «лучшая практика» для этого типа функциональности.
У меня есть таблица пользователей, таблица опросов и таблица ответов на веб-сайт. Я хочу загрузить страницу, которая загружает опрос, на который пользователь еще не ответил.
Какой самый эффективный и «лучший» способ добиться этого.
То, что я пробовал, кажется медленным / неоптимальным:
Запрос с вложенными выборками с использованием NOT IN
SELECT p.id
FROM poll p
WHERE p.id NOT IN (
SELECT r.pollID
FROM responses r
WHERE r.username = 'someuser'
)
Запрос, который использует левые соединения
LEFT JOIN responses ON ( polls.id = responses.pollID
AND responses.username = 'someuser' )
WHERE
responses.username IS NULL
Оба эти решения, похоже, очень плохо масштабируются.
Другие предложения? Открыто для чего-либо вне коробки. (Т.е. решения, которые не ограничиваются только различными типами запросов mysql)