我正在为我儿子的联盟开发一个小联盟应用程序,作为一个“周末项目”,并作为一种学习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环境中,我只是把它拉到自己的表中。
非常感谢任何和所有建议。
答案 0 :(得分:0)
如果您需要快速查询: 我认为您的架构或多或少都可以。
如果您需要快速更新: 我会改为使用他们的_id将玩家收藏转换为人物收藏。通过这种方式,如果父母改变你,你只会更新一个文件而不是拥有这个父母的玩家。
请记住,即使您需要快速查询,这也不是很容易维护,因为您可能正如您所说的那样重复数据,这可能会导致数据不一致。