[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Количество комментариев
Страницы: 1, 2, 3
IamSmorodin
Человек на сайте оставляет комментарии. Мне необходимо получить то количество, которое оставил тот или иной пользователь. Как лучше: выбирать из таблицы комментариев по id автора или при добавлении комментария увеличивать определенный параметр в таблице пользователей? Спасибо.

_____________
Мой Twitter
Подписывайтесь :)
Игорь_Vasinsky
COUNT ... WHERE id = ....

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
ИНСИ
IamSmorodin выгодно и правильно конечно же хранить количество комментариев в отдельном поле, а не считать на лету.
waldicom
Цитата (ИНСИ @ 22.10.2012 - 19:01)
IamSmorodin выгодно и правильно конечно же хранить количество комментариев в отдельном поле, а не считать на лету.

правильно, то конечно правильно, но иногда бывает правильно по-другому. На нагруженных сайтах...
Но в данном случае покатит и так.

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
ИНСИ
Цитата
На нагруженных сайтах...

Ну, это уже совсем другое. В таких проектах обычно свои движки специально пишут + кеш в основном выполняет всю работу.
Ramzil_Nixon
Цитата (IamSmorodin @ 22.10.2012 - 16:57)
Человек на сайте оставляет комментарии. Мне необходимо получить то количество, которое оставил тот или иной пользователь. Как лучше: выбирать из таблицы комментариев по id автора или при добавлении комментария увеличивать определенный параметр в таблице пользователей? Спасибо.


Мне лучше считать по ID пользователя. Так в случаи удаление какого либо комментария будет верно показывать. Это конечно мое мнение..

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

user posted image
vagrand
waldicom
Цитата
правильно, то конечно правильно, но иногда бывает правильно по-другому. На нагруженных сайтах...


Как раз то для нагруженных сайтов и нужно подсчитывать при изменении количества коментов и хранить в отдельном поле.

Ramzil_Nixon
Цитата
Мне лучше считать по ID пользователя. Так в случаи удаление какого либо комментария будет верно показывать. Это конечно мое мнение..


Триггеры для этого есть

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
ИНСИ
Цитата
Как раз то для нагруженных сайтов и нужно подсчитывать при изменении количества коментов и хранить в отдельном поле.

Не всегда. Все зависит от того, как ты структуру БД спроектировал и реализовал сам движок.
vagrand
ИНСИ
Цитата
Не всегда. Все зависит от того, как ты структуру БД спроектировал и реализовал сам движок.


Валяй, приведи пример организации БД и движка (без кешироваия) где запрос:
select count(...) from comments where post_id = ...

будет быстрее чем взять уже посчитанное значение из поля в самой таблице постов.


_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
ИНСИ
Цитата
Валяй,

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

После твоего "гонора" (типа я говорю чушь, а ты меня пытаешься вразумить) не буду отвечать и делиться опытом. Поэтому если считаешь что использовать отдельное поле ВСЕГДА лучше, то делай как считаешь нужным.
vagrand
ИНСИ

Ой как удобно то построить из себя оскорбленную невинность. Если сказал А то надо говорить и Б, а так можешь оставить свой опыт при себе, т.к. мне и своего хватает. Я очень часто в своей работе сталкиваюсь с подобными вещами и не нашел способа лучше чем использовать отдельное поле обновляя его при помощи триггеров. Если у тебя опыта больше то приведи мне нормальный пример, который будет быстрее и создаст меньше нагрузки на БД и я с удовольствием признаю что был не прав и пополню свои знания, а нет так и не надо вводить людей в заблуждение.

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
ИНСИ
Ок. Тогда давай будем поэтапно разбирать ситуацию.

Как ты обычно реализовываешь хранение Логов, Уведомлений и т.д, учитывая что онлайн у тебя 10-15к людей ?
sharki
vagrand
Наверное уже говорили, но стоит создать таблицу состояний, и там уже хранить и кол-во комментов и что-то еще, тем самым ты исключишь возможность блокировок таблиц
ИНСИ
Цитата
Наверное уже говорили, но стоит создать таблицу состояний, и там уже хранить и кол-во комментов и что-то еще, тем самым ты исключишь возможность блокировок таблиц

Это если использовать MyISAM
sharki
ИНСИ
MyISAM редко используется в нормальных продакшинах, а потому что там нету транзакций, а если подумать о ТС, то ему все равно как хранить, ибо транзакции не использует, и нагрузки как таковой на БД не будет.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.