В системе настроено удаление неактивных пользователей по умолчанию. Я полагаю, что стандартные критерии выглядят примерно так:
дата последнего сообщения (никогда не публиковал),
уровень доверия TL0,
не заходил в течение (по умолчанию) 2 лет.
Эти критерии обычно отлично справляются с очисткой базы пользователей.
Но есть ли способ получить список пользователей, которых система планирует удалить в будущем? Мы хотели бы связаться с некоторыми высокоценными, но неактивными пользователями и предложить им причины остаться с нами.
WITH posts_by_user AS (
SELECT COUNT(*) AS posts, user_id
FROM posts
GROUP BY user_id
)
SELECT
u.id,
u.username_lower AS "username",
u.created_at,
u.last_seen_at
FROM users u
LEFT JOIN posts_by_user pbu ON pbu.user_id = u.id
WHERE u.active = true AND u.trust_level = 0
AND posts IS NULL
ORDER BY u.id
Это для списка, показывающего администраторов нас.
Однако более широкий сценарий использования может быть интересным. Мы довольно часто используем электронные дайджесты, потому что некоторые члены нашего сообщества — ценные, но занятые пожилые люди, которые вряд ли будут писать сообщения и ещё реже заходить в систему. Однако они очень хорошо знакомы с электронной почтой и предпочитают оставаться в курсе событий.
Но внезапно, спустя два года, — и мы не можем снова выйти с ними на связь.
О, я понял. По сути, они читают через email и почти всегда находятся в офлайн-режиме.
Не уверен, как с этим справиться. Наверняка у кого-то есть хорошая идея. Простое решение — хотя бы опубликовать одно сообщение на форуме.
Также обратите внимание: рассылка сводок отключена для пользователей, которые не заходили в систему более 180 дней (значение по умолчанию). Название настройки — отключать email-рассылку сводок после дней.
Да, именно. Было бы неплохо, если бы они публиковали хотя бы раз. Но представьте человека, у которого катастрофически не хватает времени и который совершенно не дружит с технологиями, но при этом очень ценен. Для таких людей дайджесты — это просто находка, и сообщество понимает, что они свои, и не возражает против того, что они не участвуют в онлайн-обсуждениях.
Вы можете изменить их уровень доверия и установить его на значение отличное от 0.
Это предотвратит их выбор в задачах по очистке неактивных пользователей.