簡體   English   中英

從3個到多個表的嵌套json響應

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM