簡體   English   中英

JSON object id為主鍵模式設計

[英]JSON object with id as primary key schema design

我想用一個ID作為JSON object中的主鍵。這樣列表中的所有用戶都是唯一的。

像這樣:

{
    "user": [{
        "id": 1,
        "name": "bob"
    }]

}

在應用程序中,我必須在列表“用戶”的所有元素中搜索 id。

但我也可以使用 ID 作為索引來更輕松地訪問特定用戶。 像這樣:

{
    "user": {
        "1": {
            "name": "bob"
        }
    }
}

在應用程序中,我現在可以簡單地編寫user["3"]來獲取正確的用戶。

我應該使用什么? 第二種選擇有什么缺點嗎? 我確信有一個最佳實踐。

這取決於您希望對象采用何種格式、您希望對對象進行多少處理以及您擁有多少數據。

在處理 web 數據時,你會經常看到第一種格式。 如果有很多數據,那么您將需要遍歷所有記錄以找到匹配的 id,因為您的數據是一個數組。 通常該查詢會在您的較低級別數據集上強制執行,因此它可能已經被索引(例如,如果它是一個數據庫),所以這可能不是問題。 這種格式干凈且易於綁定。

當您需要查找效率時,您的第二個選項最有效,因為您有一個包含鍵值對的字典,可以在大型數據集中顯着加快查找速度。 並非所有庫都支持放置數字鍵(即使您將其強制為字符串)。 不過,您可以在您的 Id 前面加上一個 alpha 值,然后您可以在進行查找時添加前綴。 我在此示例中使用了 k,但您可以選擇對您的數據有意義的前綴。 在數據庫中將對象存儲為 json 二進制數據類型時,我使用這種格式。

{
    "user": {
        "k1": {
            "name": "bob"
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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