Uno de nuestros usuarios tenía 5 insignias de “Respuesta agradable” (le dieron like a 100 publicaciones y dio 100 likes). Luego movimos algunos temas a una categoría privada, y ahora solo tiene 3 insignias. Parece que la consulta de insignias no está contando los likes dados o recibidos en los temas movidos, quizás porque se movieron o porque ahora son privados.
Al depurar esto, copié la consulta de insignias al Explorador de Datos:
select p.user_id, p.id post_id, current_timestamp granted_at
from badge_posts p
where p.post_number > 1
and p.like_count >= 10
La consulta anterior devuelve solo 3 coincidencias para el usuario, pero deberían ser 5. Noté que utiliza la tabla “badge_posts”. No puedo encontrar la tabla badge_posts en la vista de árbol del Explorador de Datos. Así que cambié “badge_posts” por “posts”, y luego devuelve 5 como se esperaba.
¿De dónde proviene la tabla “badge_posts” y no debería la consulta de insignias utilizar la tabla “posts” en su lugar?
Las publicaciones en la vista badge_posts son publicaciones visibles que no están en categorías con restricción de lectura. Cuando moviste tus temas a una categoría privada, eliminaste sus publicaciones de la vista badge_posts.
Nuestra categoría privada no es tan privada: solo tienes que aceptar una política para acceder. Por eso me gustaría incluir publicaciones de esa categoría. Supongo que necesitaría crear un distintivo personalizado que se parezca a «Buena respuesta» (y «Buena respuesta» y «Gran respuesta»), pero que utilice publicaciones en lugar de badge_posts.