Оптимизация работы с БД

284
01 сентября 2017, 23:58

Есть таблицы товаров, их свойств и их значений. Значения хранятся в разных таблицах, в зависимости от их типа. Например, это могут быть сотрудники, адреса, размеры товаров и т.д.

Нужно вывести список товаров со всеми свойствами и их значениями.

Поскольку значения свойств хранятся в разных таблицах, в один запрос не уместить. Для каждого свойства система обращается к базе и вытаскивает нужное значение. В итоге получается куча запросов к одной и той же таблице, но к разным строкам.

В теории просто — нужно собрать все нужные таблицы, один раз обратиться к базе и записать их в память. Потом обращаться не к базе, а к памяти.

Но как это сделать на практике, в рамках mvc? Есть модель в которой реализована связь параметра с его значением. Как сделать так, чтобы при первом обращении к модели, она обращалась к базе, а при последующих вызовах — к переменной с результатом первого запроса?

Answer 1

Можно попробовать сделать так. Первым запросом мы определяем какие данные из каких таблиц и по каким ключам получаем. Формируем запросы, по одному на таблицу с данными и загружаем данные. Далее берем данные из памяти.

READ ALSO
Сетка QTreeView

Сетка QTreeView

У QTreeView него нет метода аналогичного QTableView::setShowGridИ как теперь отобразить сетку?

402
С++ Как добавить программу в автозагрузку без прав администратора

С++ Как добавить программу в автозагрузку без прав администратора

Написал я маленькую программу, которая в свою очередь запускает другую программуИ мне нужно добавить первую программу в автозагрузу желательно...

459
Программа не запускается без dll

Программа не запускается без dll

Написал программу на c++В ней есть функции: запуск программы, добавление записи в реестр, цикл и пара функций, а также несколько поключенных...

425