[英]Nested json response from 3 one to many tables
我正在通過以下方式設計數據模型:
表格1:
身份證號
somedata:字符串
somedata:字符串表2:
身份證號
Table1_id:編號
somedata:字符串
somedata:字符串表3:
身份證號
Table2_id:編號
somedata:字符串
第一個表以一對多關系連接到第二個表。 第二表以一對多關系連接到第三表。 我正在使用Java,JPA。 我必須通過rest api以以下格式返回JSON:
{
"table1_id": 1,
"somedata": "somedata",
"table2_data": [
{
"table2_id": 1,
"somedata": "somedata",
"table3_data": [
{
"table3_id": 1,
"somedata": "somedata"
},
{
"table3_id": 2,
"somedata": "somedata"
}
]
},
{
"table2_id": 2,
"somedata": "somedata",
"table3_data": [
{
"table3_id": 3,
"somedata": "somedata"
},
{
"table3_id": 4,
"somedata": "somedata"
}
]
}
]
}
如果我使用mysql和以上的表結構,則需要至少使用3個數據庫調用來分別從3個表中獲取數據,並且必須構造json。 有沒有一種方法可以減少數據庫調用並減少構造json的工作量? 我也願意更改數據庫(mysql)。 我只需要快速,優化和最佳的解決方案。 請注意,table1,table2和table3具有不同的字段,因此我無法將它們歸一化為單個表。
很抱歉json格式錯誤。 無法弄清楚如何在這里顯示它。
我已經看過這個問題,但我的問題與此不同: 3個一對多表中的嵌套JSON
編輯:我在這里得到了答案: https : //dba.stackexchange.com/questions/164370/nested-json-response-from-3-one-to-many-tables
我建議您首先對所有三個表執行聯接,然后您可以根據需要操作數據庫查詢的結果(取決於select語句),因為我看到您創建了表的json對象。例如,有三個表格Category Subcategory和Items讓我們了解如何執行聯接,然后根據要求獲取json數據:-
$query = "SELECT
items.id, items.category_id, items.sub_category_id, items.price_per_quantity, items.discounted_price, items.total_quantity, items.image, items.status, items.name as name, sub_categories.name as sub_category_name, categories.name as category_name
FROM items
INNER JOIN sub_categories ON sub_categories.id = items.sub_category_id
INNER JOIN categories ON categories.id = items.category_id";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.