我想为Android做一个社交游戏。我使用的是基于NoSQL的数据库(MongoDB)和NodeJs。我正在使用Android-Volley库来发布帖子并获得请求。但我被塞了一些东西,我需要看到朋友的朋友,或发送一些游戏请求或朋友请求从一个用户到另一个。然而,我仍然在为如何设计数据库模型而奋斗。
首先,
{
"user1":
{
"friendsList": [ {"user2" : {id:"2", ...}}]
},
"user2":{
"friendsList": [ {"user1" : {id:"1", ...}}]
}
}或者第二种方法,
{
"user1" : {
"friendsList": [
{
"user2" : {
"friendsList":[ {"user1" : { ... } } ]
},
...
]
}
}基本上,我想问的是,我应该把整个"user“对象包括在一个列表中,还是只保留id号。如果我保留id号,是否应该再次请求给定的Id号以显示配置文件等。我想减少到请求(我认为我需要对给定的id号提出另一个请求),这就是为什么,我需要您的帮助。
谢谢您抽时间见我。
发布于 2019-03-04 21:59:39
我将尝试解释为什么第二种方法不是解决问题的好方法(第一种使用RDBMS的方法非常简单,就像其他人提到的那样)。
另外,我没有遵循任何JSON表示法,我只是将用户的完整信息命名为Ux,ids命名为x。
U1和U2分别具有ids 1和2 ),然后决定嵌套它们。那你就会有这样的东西:[ {U1, friends:{U2}}, {U2, friends:{U1}} ] -在这里,两个用户的信息都是重复的。
U1和U2的朋友。[ {U1, friends:{U2, U3}}, {U2, friends:{U1, U3}}, friends:{U3, {U1, U2}} ] --在这里,正如你可能已经注意到的,你有更多的重复。
如果你有N个用户,你会复制他们N次。
最后,当您使用方法1时,您只需要引用其他对象。数据不会被复制,您也不需要嵌套任何东西。
如果您有N个用户,则最多有一个没有重复的N+1朋友ID列表。:)
然后可以使用这些ID访问其他用户。
https://softwareengineering.stackexchange.com/questions/388002
复制相似问题