0

我正在为我儿子的联赛开发一个小联赛应用程序,作为“周末项目”和学习 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 环境中,我只会将其拉入自己的表中。

任何和所有的建议将不胜感激。

4

1 回答 1

0

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

如果您需要快速更新:我会改为使用他们的 _id 将玩家收藏转换为人物收藏的父母。这样,如果父母发生变化,您只更新一个文档,而不会像拥有该父母的玩家那样多。

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

于 2013-06-10T21:33:50.293 回答