Distintivo para tópico popular

Existe uma maneira de conceder um distintivo a alguém que criou um tópico que recebeu muitas respostas? Digamos, 100 respostas?

Eu o chamaria de “Tópico Popular” e isso encorajaria as pessoas a pensar em novas ideias de tópicos que gerariam muita discussão.

3 curtidas

Eu acho que uma versão simples seria algo como isto:

SELECT 
    t.user_id,
    CURRENT_TIMESTAMP AS granted_at,
    p.id AS post_id
FROM topics t
  JOIN posts p ON p.topic_id = t.id AND p.post_number = 1
WHERE t.posts_count >= 100
  AND t.archetype = 'regular'
  AND t.deleted_at ISNULL
  AND t.user_id > 0

Usar t.post_counts atualmente também incluiria as pequenas postagens de ação (fechadas, não listadas, etc.), então depende de quão precisa você realmente quer que seja.
Você poderia torná-lo mais específico contando as postagens ‘elegíveis’ dentro da consulta. Algo como:

SELECT 
    t.user_id,
    CURRENT_TIMESTAMP AS granted_at,
    p.id AS post_id
FROM topics t
  JOIN posts p ON p.topic_id = t.id AND p.post_number = 1
WHERE t.id IN ( 
    SELECT 
        p.topic_id
    FROM posts p
      JOIN topics t ON t.id = p.topic_id
    WHERE t.archetype = 'regular'
      AND t.deleted_at IS NULL
      AND p.deleted_at IS NULL
      AND p.post_number <> 1
      AND p.post_type = 1
      AND p.hidden IS FALSE
     GROUP BY 1
     HAVING COUNT(*) >= 100
     )
5 curtidas

Isso é incrível, Jam!

O OP também poderia mudar as contagens de postagens para ter 3 níveis: bronze (50), prata (100) e ouro (200).

Obrigado pelo tutorial e obrigado @Shauny pela ideia.

3 curtidas

Obrigado, vou experimentar e te digo!

3 curtidas

Configurei isso agora, mas acho que deveria ser definido para atualizar diariamente? Verei se funcionou amanhã. ‘targets posts’ precisa ser marcado?

1 curtida

Funcionou muito bem, obrigado!!

2 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.