2015-06-09 4 views
1

Мне нужно отобразить количество комментариев, опубликованных пользователем. Я могу думать о двух разных способах этого, и я хотел бы знать, какой из них лучше.Лучший способ получить количество комментариев, сделанных пользователем

МЕТОД ОДИН: каждый раз, когда мне нужно отображать количество комментариев, запросите таблицу комментариев, чтобы выбрать все комментарии с user_id x и подсчитать количество результатов.

METHOD TWO: Добавить новый столбец в таблицу пользователей, чтобы сохранить количество комментариев, которые пользователь имеет сообщение. Это значение будет обновляться каждый раз, когда пользователь вводит новый комментарий. Таким образом, каждый раз, когда мне нужно показывать количество комментариев, мне просто нужно запросить это значение в datbase.

Я думаю, что второй метод более эффективен, но мне хотелось бы узнать другие мнения.

Любые комментарии будут оценены.

Спасибо заранее, Соня

+2

Вы просите мнения, которые явно не соответствуют теме этого сайта. Мы здесь не для того, чтобы помочь вам в разработке вашей системы. –

+1

Метод 1, очевидно, самый простой и прочный; счет на индексированном столбце должен быть очень быстрым, если вы столкнетесь с проблемами в будущем, вы всегда можете переосмыслить. –

+2

@MarcB Это неправда. Я не здесь, чтобы проектировать системы других для них, но я здесь, чтобы * помочь * им сделать именно это. Этот вопрос действительно не относится к категории «мнения», о которой вы (справедливо) настороженно. Проблемы с производительностью в стороне, один метод явно предпочтительнее другого. – Strawberry

ответ

1

Ну это зависит. Я полагаю, вы используете SQL. Подсчет довольно быстро у вас есть правильные индексы (например, SELECT COUNT(1) FROM articles WHERE user_id = ?). Если бы это было узким местом, я бы рассмотрел кэширование этих результатов.

0

По шкале вариант № 2 является единственным, который является жизнеспособным. В некоторых случаях счетчики могут быть перекошены, и вам может понадобиться перестроить статистику, но это относительно низкая стоимость по сравнению с попыткой подсчета количества строк, соответствующих второстепенному индексу.

Смежные вопросы