【发布时间】:2015-05-02 15:56:20
【问题描述】:
我正在为一个宠物项目试验 MongoDB。域模型不一定比 no-sql 更适合关系模型(据我所知),因此它似乎是一个很好的学习对象。
我的模型的 JSON 表示形式如下所示:
{
"_id": someId,
"prop1": "foo",
"prop2": "bar",
"entries": [
{
"name": "asdf",
"uri": "http://foo.com/bar"
},
{
"name": "asdf",
"uri": "http://foo.com/bar2",
"x": 5
},
{
"name": "asdf",
"uri": "http://foo.com/bar3"
}
... /* there's going to be lots of these */
]
}
我知道 BSON 文档大小有 16MB 的硬性限制,理论上我可以为每个文档记录数十万个“条目”对象,这不适合。
我最初的想法是每个“条目”有 1 个文档,存储在不同的集合中,并带有对父文档的引用。例如:
父集合
{
"_id": "parent1",
"prop1": "foo",
"prop2": "bar"
}
儿童收藏
{
"_id": child1,
"parentId": "parent1"
"name": "asdf",
"uri": "http://foo.com/bar1"
},
{
"_id": child2,
"parentId": "parent1"
"name": "asdf",
"uri": "http://foo.com/bar2",
"x": 5
}
麻烦的是,这在风格上似乎非常关系。
- 我是否在与 mongo 的预期设计作斗争?
- 我应该坚持使用关系数据库吗?
【问题讨论】: