关于MongoDB的集合模式的建议

时间:2013-06-10 21:25:26

标签: mongodb

我正在为我儿子的联盟开发一个小联盟应用程序,作为一个“周末项目”,并作为一种学习mongodb的方式。我正在努力寻找在MongoDB中设置架构的最佳方法。我最大的问题是我是否应该复制一些数据。这是我对模式的第一次尝试

收藏 - 播放器

    { "firstname": "Test",
     "lastname" : "Player",
     "street":"123 Lamar",
      "city": "Austin",
      "state":"TX" ,
      "zip": "78701",
     "littleleagueid": "123",
     "league":"minors",
     "team":"Rangers",
     parents : 
    [ {
    "firstname": "Bob",
    "lastname": "Player",
    "relationship": "father",
    "street":"123 Lamar",
    "city": "Austin",
     "state":"TX",
    "zip": "78701"
    },
    {
    "firstname": "Sally",
    "lastname": "Player",
    "relationship": "stepmother", 
    "street":"123 Lamar",
    "city": "Austin",
    "state":"TX",
    "zip": "78701"
    },
    {
    "firstname": "Sue",
    "lastname": "Explayer",
    "relationship": "mother",
    "street":"456 Congress",
    "city": "Austin",
    "state":"TX",
    "zip": "78761"}
     ]

}

我最大的问题是,我应该将父母嵌入儿童收藏中,还是应该将他们分成自己的收藏品?地址重复多次。这可能是最好的方法,但在SQL环境中,我只是把它拉到自己的表中。

非常感谢任何和所有建议。

1 个答案:

答案 0 :(得分:0)

如果您需要快速查询: 我认为您的架构或多或少都可以。

如果您需要快速更新: 我会改为使用他们的_id将玩家收藏转换为人物收藏。通过这种方式,如果父母改变你,你只会更新一个文件而不是拥有这个父母的玩家。

请记住,即使您需要快速查询,这也不是很容易维护,因为您可能正如您所说的那样重复数据,这可能会导致数据不一致。