Я пытаюсь обновить детей родителей как можно эффективнее. Это не должно быть рекурсивным, потому что архитектура таблиц известна.
Таблицы:
- В группе много сообщений
- В сообщении много комментариев
- В комментарии много ответов
Цель - обновить сообщения группы, а также их комментарии и так далее. Все связанные записи должны быть обновлены (удаленный файл, который имеет тип DateTime во всех таблицах).
Кроме того, Ruby не обязателен, его можно писать на SQL (Postgresql).
Что у меня есть сейчас:
group.posts.map(&:comments).flatten.map{ |c| c.touch }
для обновления только комментариев.
Есть ли лучший способ обновить как минимальное количество возможных запросов?
[SQL
] Рекурсив CTE здесь не применим?
Схема SQL:
Groups:
ID Name Deleted_at
1 Stackoverflow null
2 Programming null
Posts:
ID Title Deleted_at Group_id
1 Stackoverflowqestion null 1
2 StupidQuestionOnStack null 1
Comments:
ID Body Deleted_at post_id
1 ThaIsStupid null 1
Replies:
ID Body Deleted_at comment_id
1 yep null 1