У меня есть две таблицы MySQL:
User (id, name)
Sale (id, user, item)
Где Sale(user)
— внешний ключ для User(id)
, так что это отношение «один ко многим» (один пользователь может совершать много продаж).
Я пытаюсь получить это из базы данных и вернуть в формате JSON для нескольких пользователей, поэтому это будет выглядеть так:
[
{
"id": 1,
"name": "User 1",
"sales": [
{
"id": 1,
"item": "t-shirt"
},
{
"id": 2,
"item": "jeans"
}
]
},
{
"id": 2,
"name": "User 2",
"sales": [
{
"id": 3,
"item": "sweatpants"
},
{
"id": 4,
"item": "gloves"
}
]
}
]
Где объекты «продажи» вложены в объект соответствующего им «пользователя».
Итак, вопрос в том, как лучше всего запросить это из БД и превратить в JSON? Я мог бы выполнить запрос для всех пользователей, затем выполнить итерацию по каждому из них и выполнить запрос, чтобы получить их продажи, но это довольно медленно. Или я мог бы выполнить внешнее соединение между пользователями и продажами, а затем проанализировать его в коде в формате JSON, но это отправляет лишнюю информацию из БД (включая весь набор данных пользователя для каждой продажи) и требует циклического просмотра всего этого в код. Есть ли удобный способ сделать это? Кстати, я использую Python 3.7.