我正在开发一个应用程序,需要知道系统中注册用户之间的朋友联系。
因此,导入这些朋友是这个过程的一个步骤。但是,我想尽可能以最好的方式使用MongoDB来减少CPU和查询时间。
我基本上有两个问题:
1)我应该在新模型(FacebookFriendship)中将每个用户的friendList记录保存在其自己的模型(用户)中,还是参考?
// Nested (User Model)
{
[...],
facebookId: 12345,
facebookFriends: [123456, 12313, 1241],
}
// Reference (FacebookFriendship Model)
{
friendA: 12345,
friendB: 12344,
// Or maybe an array?
friendship: [12345, 12344]
}
2)除了模型结构(这让我头疼),我试图弄清楚将东西导入服务器的正确方法。
由于我只需要知道已经注册的用户的友情,我不想导入该Facebook用户的所有朋友。
在简历中,我想要的是导入这些友谊,只有当A和B都注册时(新用户及其朋友)。
我的想法是这样的:
foreach Friend of newUser as friend:
if FacebookUserExistsInServer(friend):
createFriendShip(friend, newUser);
但是,这种方法需要大量查询。让我们说500个朋友:500 * 2 = 1000个查询只有一个'新'用户。我仍然需要刷新'那个数据后者。
我的方法是否过于密集,或者对于正常的应用程序是否正常?
非常感谢!