Requête explorateur de données - nouveaux sujets pour l'utilisateur par tag/catégorie

J’essaie de construire un « moteur de recommandation » pour mes utilisateurs via l’API Discourse qui liste tous les sujets qu’un utilisateur spécifique n’a pas encore lus par tag/catégorie. J’ai parcouru les différentes requêtes existantes, mais je n’ai aucune idée par où commencer. Pouvez-vous m’aider ? Merci !

@simon Pourriez-vous s’il vous plaît ajouter la balise ici ?

@Krischan,

Avez-vous vérifié la table post_timings ?

Quelque chose comme ceci listera les sujets d’une catégorie dans laquelle un utilisateur n’est jamais entré ou n’a lu aucun message. Ce n’est pas exactement ce que vous voulez, mais c’est un point de départ.

-- [params]
-- user_id :user
-- category_id :category

SELECT t.id, t.title
FROM
  topics AS t
WHERE
  category_id = :category
AND user_id != :user
AND last_post_user_id != :user
AND deleted_at IS NULL
AND NOT EXISTS(SELECT 1 FROM post_timings AS p WHERE p.topic_id = t.id AND p.user_id = :user)

Notez que dans votre « moteur de recommandation », vous devrez probablement vérifier si l’utilisateur peut voir le sujet avant de le recommander.