User {
_id: "my_user",
name: "john smith",
email: "blah@test.com,
friends: [
*More Users*
]
}
我是否重写了朋友的用户数据?我每次“添加一个朋友”时,我是否会再次输入数据,还是“与”另一个用户_id字段“关联”?
答案 0 :(得分:0)
您的文档结构应基于您的数据访问模式,即程序访问数据的方式。在上面给出的例子中,你处理的是一对多关系,因为对于很多朋友来说,只有一个“John Smith”。 “约翰史密斯”的朋友可以成为彼此的朋友,你可以通过使用朋友的'_id'来处理,就像你已经这样做的那样放在一个数组中。这将降低修改数据时出现异常的风险。
User1 {
_id: "my_user1",
name: "john smith",
email: "blah@test.com,
friends: [
"my_user2",
"my_user3",
"my_user4",
]
}
User2 {
_id: "my_user1",
name: "john smith",
email: "blah@test.com,
friends: [
"my_user1",
"my_user3",
"my_user4",
]
}
另一种选择是嵌入数据但这可能导致重复和修改异常,因此应该避免,除非出于性能原因需要这样做。