Я пытаюсь разработать наиболее оптимальный способ получения совокупной информации из моей реляционной базы данных (mysql). У меня есть две таблицы: поставщик и модель. Отношение между ними одно к нескольким, то есть у поставщика может быть несколько моделей, а модель может быть связана только с одним поставщиком.
Каков наилучший способ получения информации из обеих таблиц, чтобы у каждого поставщика были свои связанные модели? Моя идея состоит в том, чтобы создать REST API, чтобы он мог иметь следующий вывод:
{
name: "one",
description: "one description",
models: [
{
name: "one_model_1",
price: 100
},
{
name: "one_model_2",
price: 200
}
]
...
Получить, сделав соединение между обеими таблицами. Таким образом, будет получен следующий вывод:
select v.name as vendorName, v.description as vendorDescription, m.name
as modelName, m.price as modelPrice from vendor v inner join model m on
v.id = m.vendor_id;
Проблема в том, что необходимо выполнить обработку кода, чтобы связать каждый элемент вендора со списком моделей. В этом случае информация, поступающая из базы данных, будет приносить повторную информацию от поставщика.
Сначала выполните поиск по всем поставщикам, а затем зациклите их, чтобы получить связанные модели. Здесь будет представлена проблема N + 1, так как для получения моделей потребуется запрос N поставщиков, а затем N запросов.
Сначала выполните поиск поставщиков. Затем из идентификаторов поставщиков будут извлечены все модели, а связь между поставщиком и моделью будет выполнена с помощью кода.
Интересно, что было бы лучшим решением?