Skip to main content

Documentation

Внесение моделей в БД

При старте модуля mp_calc_models происходит определение какие поля где должны храниться (см. статью Структура базы данных marketpawns, раздел mp_models и группа связанных таблиц).

Section Documentation
Updated 08.06.2023

Механика внесения моделей в БД#

При старте модуля mp_calc_models определяется, какие поля и в каком виде должны храниться в БД. Общий контекст этой схемы описан в статье о структуре БД marketpawns, в разделе mp_models и группа связанных таблиц.

  • $nativeFields из mp_define.php — это список полей модели, которые хранятся не в param, а в «родном» виде прямо в записи модели.
  • Список полей, которые реально присутствуют в mp_models, определяется запросом к БД и сохраняется в массиве $columnsInModels.
  • $servColumns из mp_define.php — это служебные поля mp_models, не формируемые алгоритмами I и II, например id, pair_id, tf, updated, arc.
  • $externBranches из mp_define.php — это дополнительные ветки модели, такие как Levels, clusterParams и modelScores, которые хранятся отдельно в mp_add_branches.

На основе этих массивов выполняется распределение информации: система определяет, какие поля нужно сохранять в mp_models, какие — во внешних ветках, а какие — в упакованном виде.

Ключевая идея подхода — убрать прямые команды insert и update из основного тела программы. Все взаимодействие с БД вынесено во внешние функции:

  • complementModel — по id модели читает и распаковывает всю необходимую информацию;
  • insertModelIntoDB — сохраняет новую модель в БД;
  • updateModelInDB — обновляет уже существующую модель.

Преимущество такого подхода в том, что схему хранения можно менять без вмешательства в основную бизнес-логику. Например, если часть полей, которые сейчас хранятся в упакованном виде, позже потребуется вынести в отдельные таблицы, изменения будут локализованы в DB-слое. Благодаря этому и обновления выполняются точечно: например, при проверке Broadcast в check_new_models можно обновлять только дополнительные ветки ответов нейронок и отчетов по кластерам, не переписывая всю модель целиком.

Continue Reading

Related Articles