我们想设计一个可扩展的数据库。如果我们有 N 个用户,有 10 亿用户响应,那么从下面的 2 个选项中,哪个是好的设计?我们希望根据用户 ID 和响应 ID 进行查询。
- 有 2 个集合,一个用于用户信息,另一个用于存储响应和用户 ID。每个响应都存储为一个文档,因此我们将拥有 10 亿个文档。
用户收藏
{
“用户ID”:“用户ID1”,
“密码”:“xyz”,
,
“城市”:“纽约”,
},
{
“用户ID”:“用户ID2”,
“密码”:“abc”,
,
“城市”:“纽约”,
}
响应集合
{
“用户ID”:“用户ID1”,
"responseID": "responseID1",
“响应”:“xyz”
},
{
“用户ID”:“用户ID1”,
"responseID": "responseID2",
“回应”:“ABC”
},
{
“用户ID”:“用户ID2”,
"responseID": "responseID3",
“响应”:“mno”
}
- 有 1 个集合来存储以下信息。每个响应都由一个新键 (responseIDX) 表示。
{
“用户ID”:“用户ID1”,
“responseID1”:“xyz”,
"responseID2" : "abc",
,
“响应N”;"mno",
“城市”:“纽约”
}