Система рейтингу для клона Reddit
Викладаю концепт як зробити просту рейтингову систему
За пост користувача можно голосувати. Є позитивні реакціїї та негативні. Ці реакції записуються в D1 в таблицю reactions
. Кожного дня скрипт зчитує всі реакції по всіх постах користувача, сумує та кладе в таблицю ratings
. Коли користувач створює пост, то рейтинг користувача кладеться в основу рейтингу посту (поле rating
в самому пості).
Таблиця:
1
2
3
ratings
- user_id
- rating
Коли інші користувачі голосують за пост – вони просто додають реакції до посту, ніяк не впливаючи на відображення цього посту. Проте коли користувач робить наступний пост, то рейтинг його майбутнього посту буде вже іншим. Якщо попередній пост “вистрілив” погано, то рейтинг наступного буде нижчим.
Як рейтинг посту впливає на відображення в стрічці? Користувачі можуть налаштовувати в профілі з яким рейтингом вони хочуть бачити пости в стрічці. Якщо рейтинг постів почав падати, то такі пости зникнуть зі стрічки. Якщо рейтинг повернувся і перетнув барʼєр користувача – зʼявляться в стрічці знову.
І просто, щоб не загубити:
Зображення-аватар користувача буде розташовано в
/u/:user_id/avatar.jpeg