Допустим, у меня есть таблица thread
и таблица response
, где я храню темы и ответы на темы, которые пользователь отправляет на форуме.
В настоящее время я подсчитываю ответы, которые есть у данной темы:
SELECT COUNT(id)
FROM response
WHERE container_id = THREAD_ID
Но не лучше ли было бы просто иметь другое поле (number_of_responses
или что-то подобное) в таблице потоков, добавлять 1 к нему каждый раз, когда оно отвечает? Тогда запрос превращается во что-то вроде этого:
SELECT number_of_responses
FROM thread
WHERE id = THREAD_ID
LIMIT 1
Да, я бы повторял данные, но разве этот подход не эффективнее? Или это по какой-то причине не рекомендуется?