gitdev, создать через new и зависимости (если они есть) мокнуть, чтобы тестирование касалось только класса CalculatorService и не затрагивало зависимости
gitdev, если хотите все-таки с зависимостями тестировать, тогда получите контейнер в тесте и из контейнера вытащите сервис. Но это уже будет не модульный тест
Самый стандартный вариант, это 1. По кнопке субмитится форма, данные обычно обрабатываются тем же самым экшеном/скриптом. C данными выполняются требуемые действия (валидация, сохранение в сессии, в бд и тп) и затем делается редирект на следующую страницу
Сергей Попов, думаю, это самый быстрый вариант из возможных. Можно сравнить EXPLAIN различных вариантов. Да и в целом проверить EXPLAIN, где там проблемы могут быть и что можно с этим сделать. Дальше уже смотреть на денормализацию, кэширование
Сергей Попов, вроде мой вариант как раз подходит. Дважды JOIN таблицы цен, и убираем все цены, которые по дате добавления меньше последней. В итоге остается на каждую машину одна последняя запись из таблицы цен
Сергей Попов, не совсем понял этот момент. Если нужна одна запись, то причем тут будет JOIN к первой таблице? Не проще тогда вытащить эту запись отдельно?
В моем примере на каждую строку в основной таблице выбирается одна последняя запись из присоединенной таблицы