Разница между подсчетом записей и счетчиком переменных в базе данных
Если у меня есть user
стол и post
таблицу, и я хочу подсчитать, сколько сообщений пользователь опубликовал сегодня, я могу придумать два пути.
Первый - отправить SQL-запрос, чтобы подсчитать, сколько post
записи, которые принадлежат user
создан сегодня.
Во-вторых, иметь count
таблица, которая имеет три столбца: user_id
, num_posts
, а также date
, так что когда пользователь делает сообщение, num_posts
увеличивается, если date
сегодня или просто установлен в 1, и когда нам нужно посчитать сообщения, мы просто получаем num_posts
если дата сегодня или скажем 0.
Мне кажется, что оба метода практичны, но я не эксперт по БД, не обладающий большими знаниями о том, как БД работает в бэкэнде, поэтому я не уверен, какой путь выбрать (хотя, похоже, большинство людей реализуют первый?). Кто-нибудь может дать мне некоторое представление об этом?
3 ответа
Первый должен подойти, если количество пользователей и сообщений в вашей системе не слишком много. Но если пользователей и постов слишком много, вы можете рассмотреть второй вариант, так как он будет быстрее. Недостатком является то, что для хранения данных потребуется больше места.
Второй вариант более избыточен, я бы его не рекомендовал, за исключением случаев, когда у вас проблемы с первым. (Избыточность может вызвать несоответствия, это плохо в мире rdbms.)
Иметь отдельную таблицу по количеству постов было бы излишним. Вы можете получить ту же информацию, запросив эту таблицу или запросив таблицу записей. Избегайте этого, если вам это отчаянно не нужно по соображениям производительности.