на мой взгляд это и не нужно архитектурно.
Если у вас выборка GET - 2-3 параметра достаточно в общем случае, вот как у вас в примере: вполне можно выбрать доп инфо поста конкретного юзера.
Если же у вас неистово нафильтровано (к примеру, куча параметров - доп инфо статуса такого-то, не старше даты такой-то, и тп) - передайте GET-параметры в урле после вопроса. Всё успешно попадет в $request.
Про POST понятно - по аналогии с GET.
the5x, найти etc по id, а остальные связи подтянуть в обратную сторону идя от etc к юзеру, причём все это можно получить одним запросом к бд с join'ами.
Но даже в вашем варианте, никаких проблем нет. Как правило обновление данных (insert, update, delete) операция редко используемая, по сравнению с количеством select'ов.
Конечно может быть разная специфика, но если это условный блог, то пользователь пишет пост или обновляет его раз, а читают его потом сотни раз.
То есть оптимизировать надо именно ту часть где больше нагрузка, то есть select'ы и тд.
А два лишних select'a при изменении etc это не то от чем стоит переживать. База для того и создана, чтобы работать.