Editing posts cause notification

Итак, представьте пост с тремя разными упоминаниями групп. Он редактируется, и добавляется четвертое упоминание.

При сохранении правки мы можем использовать такой запрос, чтобы получить текущий список упоминаний групп для этого поста:

-- [params]
-- text :post_id

select gm.group_id, g.name
from group_mentions gm
join groups g on (gm.group_id = g.id)
where post_id = :post_id

Затем, сравнивая результаты запроса со списком групп, упомянутых в посте, мы можем найти новое упоминание (или новые упоминания).

Это не кажется слишком сложной вычислительной задачей, но, возможно, я упускаю что-то очевидное. Также это выглядит как задача, которую можно выполнять в фоновом режиме.

Что касается JIT-баннера об уведомлении группы (групп), то, возможно, эту логику можно было бы вынести в отдельный API-эндпоинт (/post/<id>/mentions.json) для асинхронного получения этих данных.