DonPrus
3.02.2014 - 00:30
Доброго времени суток!
Суть проблемы - необходимо организовать систему оценки комментариев к статье.
Пользователи регистрируются, и может поставить комментарию + или -.
Потом хочу выводить только те, где + > -. То есть "полезные".
Для этого завёл отдельную табличку, где сохраняется uid пользователя, id комментария за который голосовал и столбец кармы, где значения 0 или 1.
Соответственно при оценке я проверяю - нет пытаемся ли мы добавить строку где uid и id которые уже были.
Если нет - добавляем.
Чтобы вывести я считаю строки с id комментария с кармой 1, это плюсы. Потом считаю строки с id комментария все, из него вычитаю кол-во строк где карма равна 1. Нахожу минусы. Потом сравниваю, и если + больше - вывожу этот коммент.
Внимание вопрос! Можно ли это оптимизировать/упростить?
waldicom
3.02.2014 - 01:19
Если используется MySQL, то можно использовать REPLACE вместо "...я проверяю - нет пытаемся ли мы добавить строку где uid и id которые уже были..."
Если для минусов использовать -1 вместо 0, то для полезности можно просто выбирать сумма по коменту > 0
_____________
Свои мозги еще никто не отменял.
Телепатов нету.
DonPrus
3.02.2014 - 16:27
Цитата (waldicom @ 3.02.2014 - 01:19) |
Если используется MySQL, то можно использовать REPLACE вместо "...я проверяю - нет пытаемся ли мы добавить строку где uid и id которые уже были..." Если для минусов использовать -1 вместо 0, то для полезности можно просто выбирать сумма по коменту > 0 |
Да, а то у меня в моём варианте отредактировать никак нельзя было бы
Учту.
А по поводу минусов -1, сейчас у меня в таблице строка типа булен - занимает вроде поменьше, чем числа со знаком, даже длинной 1.