‘사용자 알림’ 플래그 PM 권장

사용자들이 논쟁적이거나 개인적인 피드백을 게시글에 공개적으로 남기어 대화를 주제에서 벗어나게 할 위험을 줄이고, 대신 이를 문명적이고 친근한 방식으로 사적인 메시지로 보내도록 장려하고자 합니다. 여기 배지가 있습니다:

쿼리:

SELECT p.user_id, current_timestamp AS granted_at
FROM posts AS p
JOIN topics t on t.id = p.topic_id
WHERE t.archetype = 'private_message'
AND t.title LIKE 'Your post in "%"'
AND p.post_number = 1
AND p.like_count >= 1
AND (:backfill OR p.user_id IN (:user_ids))
GROUP BY p.user_id
HAVING count(*) >=1

신고 메시지 전용 트리거를 찾지 못했기 때문에, 쿼리에서는 기본 제목인 "Your post in …"를 사용하고 있습니다. 이 배지는 여러 방식으로 쉽게 조작되거나 사기를 치기 쉽다고 볼 수 있지만, 이 기능을 더 많이 노출시키고 이것이 커뮤니티에 긍정적인 행동으로 인식된다는 점을 전달함으로써 그 목표를 달성할 수 있을 것입니다.

이것이 'Notify User’의 post_action를 기반으로 하는 것일까요?

다음과 같은 형태일 것입니다:

SELECT pa.user_id, current_timestamp AS granted_at
FROM post_actions pa
  JOIN posts p ON p.id = pa.related_post_id
WHERE pa.post_action_type_id = 6
  AND p.like_count >= 1
  AND (:backfill OR p.user_id IN (:user_ids))
GROUP BY pa.user_id
HAVING COUNT(*) >= 1

사실, 플래그가 기반이 된 게시물의 링크가 아니라 DM의 링크인 것 같습니다. 약간의 수정이 필요할 수 있습니다.

p.id = pa.related_post_id로 조인(join)을 빠르게 변경하면 작동할 것 같습니다. :+1:

‘HAVING`은 하나 이상의 실버 및 골드 버전을 부여하려는 경우에만 필요하다고 생각합니다.