我们想设计一个可扩展的数据库。如果我们有 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", “城市”:“纽约” }