На уровне приложения реализованы не транзакции, а проверка на валидность вводимых данных.
Однако такая проверка не спасет вас от какого нибудь CRASH_RECOVERY - в этом случае целостность ваших связанных данных будет нарушена
Нет, в своей предыдущей работе всегда использовал транзакции при записи связанных данных.
Свои аргументы в пользу этого я описал в вопросе.
С концепцией ACID знаком.
Если вы считаете, что я не прав, то готов выслушать ваши аргументы по этому поводу
Это дополнительный процесс, о котором надо помнить каждый раз, когда проверяешь что нибудь связанное с пользователями. Рано или поздно я это забуду и потрачу лишнее время на дебаг
Да, немного. Без индексации выдача будет не соответствовать тому, что в базе и некоторые баги можно запросто пропустить на продакшн. Поэтому условия работы максимально приближены к боевым
Сергей Евстигнеев: ты вообще читал то, что я скинул?
Тебе надо в самой модели описать рилейшен MANY_TO_MANY.
Вот пример такого рилейшена:
```
class Order extends ActiveRecord
{
public function getItems()
{
return $this->hasMany(Item::className(), ['id' => 'item_id'])
->viaTable('order_item', ['order_id' => 'id']);
}
}
```
2) Как раз таки хотелось бы услышать, какие кейсы проблем здесь возможны