【发布时间】:2012-12-20 23:30:50
【问题描述】:
我有一个profile 记录列表,每条记录如下:
{
"name": "Peter Pan",
"contacts": [
{
"key": "mobile",
"value": "1234-5678"
}
],
"addresses": [
{
"key": "postal",
"value": "2356 W. Manchester Ave.\nSomewhere District\nA Country"
},
{
"key": "po",
"value": "PO Box 1234"
}
],
"emails": [
{
"key": "work",
"value": "abc@work.com"
},
{
"key": "personal",
"value": "abc@personal.com"
}
],
"url": "http://www.example.com/"
}
我会考虑采用以下架构结构:
- 带有
id和name字段的profile表。 - 带有
id、profile_id、key、value字段的profile_contact表。 - 带有
id、profile_id、key、value字段的profile_address表。 - 带有
id、profile_id、key、value字段的profile_email表。
但是,我认为我为这样一个简单的 JSON 创建了太多表!
- 跨表搜索时是否会出现性能问题,因为执行了许多 JOINS 来检索一条记录?
- 将上述 JSON 记录建模到数据库中的更好方法是什么?在 SQL 中,还是在 NoSQL 中更好?
【问题讨论】:
-
你不能在 sql 的表中设计“嵌套”列。
-
@DerekFloss,不在一张桌子上,可能是几张桌子?
标签: sql database json database-design nosql