Привет всем в очередной раз!
В очередной раз задаю глупый вопрос, но допетрить самому тяму не хватило =)
Собственно вопрос:
Есть пользователи, есть пользовательские блоги, есть подписка на пользователей - самая обычная система юзер-блогов с подпиской
но вот не могу допетрить как решить проблему хранения статуса новых постов?
т.е. мне нужно чтобы каждый пользователь видел у себя в меню ссылку "Лента (4)" - где, "4" - кол-во не прочитанных новых постов в его ленте. Соотвественно заходил в ленту и это число обнулялось
Проблема в том, что пользователей много, блогов еще больше (у каждого пользователя может быть N-количество блогов) - соответственно не могу придумать как хранить статус каждому пользователю для каждого нового поста
на стаковерлфлоу прочитал про то, чтобы сравнивать пользовательский lastActivity и post_date - в принципе идея интересная, но не совсем подходящая.
Подксажите, гуру!
Почему не очень подходящая?
Раньше эта проблема была популярной для форумов. И там как раз last activity не канала - никто не гарантировал, что в эту самую activity чувак прокликал по всем новым темам. Но для блогов ведь это не актуально: открыл ленту - считай, просмотрел.
Можно за lastActivity считать время, когда просматривал ленту.
И наоборот - если посты в ленте отмечать прочитанными только если зайти в него, то давно прочитанные будут иметь неверный статус.
Короче, не надо переусложнять.
Если считать совсем честно (по постам) - то вопрос отлично бьется с Как организовать удаления записей из ленты пользователя?
Если устраивает вариант не совсем честного подсчета - то решение хранить для каждого пользователя lastActivity в каждом блоге на который он подписан - мне кажется вполне оптимальной
По ссылке уже вчера читал, много думал, потом опять читал и опять много думал. И пришел к тому же самому выводу - "решение будет затратным по ресурсам" :( Поэтому хочется услышать, может быть есть еще какой-нибудь гуманный способ :( Ведь по такому принципу работают очень многие блого-системы. Ясно понятно что скорее всего не везде там MySql, но тем не менее принцип, скорее всего +\- одинаковый хранения данных
Вячеслав: я считаю что для вашей задачи - решение с lastActivity оптимально.
В зависимости от хотелок - можно хранить lastActivity для пользователя, а можно для связки (пользователь,блог).
Затраты прямо скажем будут не велики, а какими то погрешностями тут разумно принебречь