Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Голосование за коммент

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
rezz
Отправлено: 03 Декабря, 2012 - 16:35:28
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




Добрый всем день.

Прошу помочь советом, хочется найти оптимальную реализацию.

Нужно сделать оценку комментов типа (+ 0 -) для зарег. пользователей.

Есть разделы сайта (к примеру статьи, новости и тд). Для них реализован один скрипт CRUD комментов (под каждый раздел заведена таблица типа commentArticle, commentNews и тд) и скрипт выполняет одни и теже действия только в разных разделах с нужными таблицами.

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

Затык в следующем, нужно вести "лог" голосовал ли пользователь за коммент, чтобы не давать лишний раз ему проголосовать.

Как я вижу способы:
- Выносить в отдельную таблицу все логи. Чревато тем что, при большом объеме комментов в разделах, будет долго происходить поиск(хотя если сделать индексы то может не совсем долго) .
- Создавать еще N таблиц под каждый раздел, типа commentLogArticle, commentLogNews и тд (думаю не очень верно)
- Можно сделать кэш в котором хранить голоса (этот способ мутен для меня)

Подскажите, желательно обоснованно или ссылочку какую нибудь полезную дайте.

Заранее благодарен.
 
 Top
Stivir
Отправлено: 03 Декабря, 2012 - 16:56:26
Post Id


Частый гость


Покинул форум
Сообщений всего: 128
Дата рег-ции: Май 2012  


Помог: 2 раз(а)




Вариант такой: новая табл. например "голосование" связь с табл. комментариев по id. коммента. Зарегистрированный пользователь, нажимает + или -, отправляется запрос в базу с его логином, есть ли его голос на этот коммент., если нет то запись в базу с зачетом его голоса, + или -, если пользователь отметился в этом комменте, сообщить ему, что 2-ой раз нельзя.

(Отредактировано автором: 03 Декабря, 2012 - 17:01:40)

 
 Top
rezz
Отправлено: 03 Декабря, 2012 - 17:02:33
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




С алгоритмом добавления создания/удаления голоса все понятно.

Проблема именно в том к какому методу хранения голосов обратится!
 
 Top
Stivir
Отправлено: 03 Декабря, 2012 - 17:04:23
Post Id


Частый гость


Покинул форум
Сообщений всего: 128
Дата рег-ции: Май 2012  


Помог: 2 раз(а)




Как я вижу: поле рейтинг по умолчанию 0, если +, то +1, если -, то наоборот?
 
 Top
caballero
Отправлено: 03 Декабря, 2012 - 17:58:48
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Проблема именно в том к какому методу хранения голосов обратится!

методу чего? методы в воздухе не висят.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Stivir
Отправлено: 03 Декабря, 2012 - 18:00:19
Post Id


Частый гость


Покинул форум
Сообщений всего: 128
Дата рег-ции: Май 2012  


Помог: 2 раз(а)




Что-то я протупил. Правильнее вставлять от каждого пользователя или 1 или -1 и после каждого голосования просчитывать результат по каждому комменту и выводить аджаксом.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB