Tenemos muchas etiquetas con «recuento: 1», ya que la creación de etiquetas no está en absoluto restringida y algunas personas las tratan simplemente como hashtags. Todavía creo en mantener los permisos abiertos para las etiquetas, pero sería agradable poder desbrozar el jardín con más facilidad de forma periódica.
Me encantaría encontrar formas de animar a las personas a considerar las etiquetas como un medio para «agrupar» temas relacionados y crearlas solo cuando piensen (¡o sepan!) que se utilizarán más de una vez.
Pero mientras tanto, creo que ampliar la función existente para permitir «eliminar etiquetas utilizadas por menos de __ temas» podría ser una mejora agradable que usaríamos.
Aún más sofisticado, podría imaginar una configuración que elimine automáticamente las etiquetas y las borre según los siguientes criterios:
count < N && topic_last_updated > hace X meses
Básicamente, se les da a las etiquetas la oportunidad de asentarse. Su vida se renueva si se publican nuevos temas antes de que se agote un tiempo límite. Pero si no se han publicado nuevos temas durante más de, digamos, 3 meses, y la etiqueta tiene menos de 5 temas, simplemente elimínala.
Yo tampoco he visto nunca este botón, y estoy de acuerdo en que una función de limpieza automática sería útil. También debería tener cuidado de no eliminar etiquetas que son solo para el personal. Probablemente haya otros casos en los que algunas etiquetas no deberían eliminarse automáticamente.
Mientras tanto, aquí tienes una consulta de #plugin:data-explorer que puede ayudar a los usuarios a identificar etiquetas candidatas para su eliminación:
-- [params]
-- int :months_since_used = 24
-- int :max_topic_count = 50
with
t as (
select
current_date::timestamp - (:months_since_used * (INTERVAL '1 months')) as cutoff_date
),
topic_tag_dates as (
select tags.id, tags.name, tags.topic_count, topics.last_posted_at as last_used
from topic_tags
left join tags
on topic_tags.tag_id = tags.id
left join topics
on topic_tags.topic_id = topics.id
),
max_last_used as(
select id, max(last_used) mx from topic_tag_dates
group by id
),
tag_last_used as (
select topic_tag_dates.id, name, topic_count, last_used from topic_tag_dates
left join max_last_used
on topic_tag_dates.id = max_last_used.id
where max_last_used.mx = topic_tag_dates.last_used
)
select id,name,topic_count,last_used from tag_last_used, t
where tag_last_used.last_used < t.cutoff_date
and topic_count < :max_topic_count
order by topic_count desc
Sí, esto es muy necesario, ya que algunas personas en mi foro decidieron que sería divertido bromear y publicar, digamos, etiquetas ‘interesantes’ que no son apropiadas para todas las edades. Por lo tanto, me gustaría ver este tipo de función.