Скажем, у меня есть база данных, которая содержит следующее:
orders(id, total, address_id)
line_items(id, product_id, order_id, quantity, price)
products(id, name, price)
addresses(id, address)
Мне нужно предоставить отчет, который содержит следующее:
Order #123
Line Items
3 x Product 1 @ $3 = $9
2 x Product 2 @ 1 = $2
Total: $11
Shipping: 123 Main Street
Order #124
Line Items
1 x Product 1 @ $3 = $3
1 x Product 2 @ 1 = $1
Total: $4
Shipping: 456 Jones Ave
Таким образом, должен отображаться список заказов для каждого заказа, идентификатор, список позиций, общая сумма заказа и адрес доставки.
Каков наилучший способ сделать это, не выполняя запрос для каждого заказа для получения позиций и информации о доставке?
Должен ли я иметь представление, которое содержит следующее:
order_id, line_item_quantity, line_item_price, product_name, line_item_total, shipping_address
А затем группировать по идентификатору заказа в коде приложения? Это лучшее, что я могу придумать, но это выглядит неаккуратно (и, конечно, в реальном мире в каждой таблице будет гораздо больше информации и намного больше таблиц).