JSON对象,id为主键模式设计



我想使用ID作为JSON对象中的主键。这样,列表中的所有用户都是唯一的。

一样:

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

在应用程序中,我必须在列表'user'的所有元素中搜索id。

但是我也可以使用ID作为索引,以便更容易地访问特定用户。像这样:

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

在应用程序中,我现在可以简单地写user["3"]来获得正确的用户。

我应该用什么?第二个选择有什么缺点吗?我相信有一个最佳的做法。

这取决于你想要对象的格式,你想在对象上做多少处理以及你有多少数据。

在处理web数据时,通常会看到第一种格式。如果有很多数据,那么您需要遍历所有记录以找到匹配的id,因为您的数据是一个数组。通常,该查询将在较低级别数据集上强制执行,因此它可能已经被索引(例如。如果它是一个数据库),所以这可能不是一个问题。此格式简洁,易于绑定。

当您需要查找效率时,第二个选项最有效,因为您有一个包含键值对的字典,允许在大型数据集中显着加快查找速度。并不是所有库都支持使用数字键(即使强制使用字符串)。你可以用alpha值作为Id的前缀,然后你可以在查找时添加前缀。我在这个例子中使用了k,但是你可以选择一个对你的数据有意义的前缀。在数据库中将对象存储为json二进制数据类型时,我使用这种格式。

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

相关内容

  • 没有找到相关文章

最新更新