我有以下3张桌子:
Orders Order_Line Order_Charge
------ ---------- ------------
order_id order_id order_id
order_total line_item charge_name
order_date line_total charge_total
现在,我有一个程序可以选择此信息,并使用其所有相应信息构造一个Order对象。为了简单起见,假设它是创建订单的JSON数组。可以起到以下作用的
{
"order1": {
"order_id" : "1",
"order_total" : "100.00",
"order_date" : "2/25/19",
"order_lines" : {
....
},
"order_charges" : {
.....
}
},
"order2" : {
....
}
}
现在,我遇到的问题是从SQL数据库中提取此信息的最有效方法。有两种方法。
我可以在order_id上连接这3个表,然后选择所有相关列。这样做的问题是,当您开始添加更多的行和表时,重复和行的数量将很快失去控制。这似乎不可持续,因为数据集可能会增长?
第二个是选择所有订单,然后选择第一个结果集中所有具有order_id的Order_Line,然后对Order_Charge执行相同的操作。这样可以增加查询数量,但效率更高。
还有其他方法吗?还是上述两种方法更优选?