Как добавить пачку записей но если значения поменялись?
не нашел приятного способа добавления записей в базу данных пачками если нужно добавлять только те значения у которых изменилось одно поле (цена).
То есть в таблице хранятся цены товаров по датам. и каждый раз когда у товара меняется цена нужно добавлять новую запись. по одному то обновлять эту таблицу легко. Но если нам нужно сразу добавить пачку записей сравнивая каждую запись с последним элементов для каждого товара как это сделать ?
На входе имеем массив с полями product_id, price а в таблице такие же поля + еще даты.
добавляем запись только если цена изменилась. и сделать это нужно без цикла.
Или может считать сначала из таблицы срез последних цен, сравнить с массивом и добавить тех которых нужно?
читаешь пачкой, дальше фильтруешь свой массив, например методами коллекций (оставляешь только измененные), дополняешь датой, другими необходимыми колонками (если нужно), делаешь Модель::create($ТвойПодготовленныйМассив)
Тут уж куча вариантов: соединение (join) самого с собой, сгруппированного по товару и максимуму периода, коррелированный запрос, доп поле, в которое пишется признак "последнести" (ну или доп таблица, в которую просто последние цены пишутся без истории)