извините, если это дубликат, я искал что-то подобное перед публикацией, но безуспешно.
Так что в основном мне нужна система повышения / понижения (она очень похожа на ту, что здесь описана в стеке).
У меня есть 6 оцениваемых моделей, поэтому полиморфная ассоциация кажется лучшим вариантом.
Но поскольку эта таблица, вероятно, будет содержать значительное количество записей, не займет ли слишком много времени получение рейтинга элемента (upvotes_count - downvotes_count
)?
На самом деле, я думаю о добавлении новой строки в каждую оцениваемую модель, что-то вроде current_rating_value
. Так что это значение будет изменяться каждый раз, когда объект рейтинга будет создан / уничтожен.
Не могли бы вы посоветовать, что может быть лучшим вариантом в этом случае? Дополнительный вызов UPDATE для изменения current_rating_value
или дополнительный вызов SELECT (SUM ...) для его вычисления?