Как эффективно преобразовать денормализованные данные в JSON?
Я изучаю django и не смог найти ответ на этот вопрос.
Я получаю данные запроса в денормализованном виде. Вот как это выглядит.
Store_id | Shelf_id | Product_id | Qty |
---|---|---|---|
store1 | shelf1 | product1 | 20 |
store1 | shelf1 | product2 | 24 |
store1 | shelf2 | product1 | 34 |
store1 | shelf2 | product3 | 12 |
store2 | shelf1 | product3 | 21 |
store2 | shelf1 | product1 | 46 |
и так далее. Существуют отношения "один-ко-многим" от магазина к полке и к моделям товаров. Я написал цикл foreach, чтобы перебрать весь набор данных и преобразовать его в JSON, как
[
{"store1" : [
{"shelf1" : [
{"product1" : 20},
{"product2" : 24}]
},
{"shelf1" : [...]}]
},
{"store2" : [...]},
]
Несмотря на то, что цикл foreach довольно прост в написании, он довольно неэффективен при выполнении. Для каждой записи он должен проверить, существует ли магазин и полка, прежде чем добавить запись о товаре. Ожидается, что производственные данные будут содержать 100+ магазинов и 5000+ полок, а их количество составит около 1,5 млн строк в день. Это большое количество ключевых запросов. Есть ли способ генерировать данные в формате JSON непосредственно из запросов django?