SmorodinKA
20.08.2013 - 16:12
Добрый день. У меня есть таблица пользователи и таблица постов, которые сие пользователи пишут. Как правильно сделать: в таблицу 'users' занести новое поле, в которое будет писаться количество постов или просто, где необходимо подсчитывать из таблицы постов? Спасибо.
T1grOK
20.08.2013 - 16:14
Если предусматривается постов мало, то можно и на лету пробегать таблицу. Иначе путем денормализации(поле в таблице пользователей).
_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Lenarfate
20.08.2013 - 16:15
я бы сделал две отдельные таблицы и связал бы их между собой по user_id, например
HErATuB
20.08.2013 - 16:55
Зачем хранить? во второй таблице уже есть количество постов. Тебе просто нужно запросить количество постов из второй таблицы.
vagrand
20.08.2013 - 18:08
HErATuB
Цитата |
Зачем хранить? во второй таблице уже есть количество постов. Тебе просто нужно запросить количество постов из второй таблицы. |
Что бы уменьшить нагрузку на БД. Добавление и удаление постов это не такая уж и частая задача, а вот вывод инфы скорее всего намного более частая задача и что же будет быстрее сделать отдельный запрос или приджойнить с группировкой, или просто добавить к выводу одно поле из той же таблицы?
_____________
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, фрагменты.
HErATuB
21.08.2013 - 09:14
Цитата (vagrand @ 20.08.2013 - 14:08) |
Что бы уменьшить нагрузку на БД. |
Не такая уж большая нагрузка. А так ты выделяешь память под хранение счетчиков и нужно обновлять счетчик при добавление нового поста.
vagrand
21.08.2013 - 10:49
HErATuB
Цитата |
Не такая уж большая нагрузка |
Да ну, тебе известны все параметры: количество юзеров и постов, количество запросов в секунду, как и где выводятся эти данные? Я написал исходя из того что данных много и количество запросов существенное.
Цитата |
А так ты выделяешь память под хранение счетчиков и нужно обновлять счетчик при добавление нового поста. |
О да, просто грандиозное количество памяти, аж целое дополнительное поле типа int. А обновление ну просто непосильная задача, аж целых три элементарных триггера написать.
_____________
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, фрагменты.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.