К примеру есть таблица (ИБ) с фруктами, где хранятся имена фруктов
фрукт
фрукт1
фрукт2
Также есть таблица (ИБ Хайлоад, все поля с привязкой к ИБ выше)
фрукт похожие другие
фрукт 1 фрукт5 фрукт8
фрукт 1 фрукт3 фрукт1
фрукт 2 фрукт6 фрукт2
фрукт 2 фрукт4 фрукт6
Нужно выбрать из таблицы похожие для фрукта 1, похожие для фрукта 2, другие для фрукта 1 и другие для фрукта 2
я делаю так, например похожие для фрукта1
Table2::getList(array(
'select' => ['*'],
'filter' => 'фрукт1',
));
//результат массив с id, но нужно же получить имена фруктов,
//поэтому делаю второй запрос
Table1::getList(array(
'select' => ['*'],
'filter' => [ID=>'массив id похожих'],
));
//аналогичным образом делаю для остальных вариантов
итого
если искать инфу по 2-м фруктам - это фрукт1 и фрукт2, то получается
2 getList по этим фруктам, а потом еще один GetList на случай, похожие другие
В итоге в коде аж 6 GetList. Все работает, просто хочется сделать рефакторинг.
У меня есть идея делать один раз getList из таблицы 2, а потом просто с помощью array_filter получать нужные данные. Затем сделать 1 раз GetList из таблицы 1 и связать данные путем каких то манипуляций с ними.