我有一个User
表和一个FriendRequest
联接表。
User
使用FriendRequest
,from
和to
列创建status
行
当用户接受FriendRequest
时,他会将状态更改为Accepted
,并触发Cloud Code afterSave
方法,检查请求的状态。
如果是Accepted
,则应将两个用户分别添加到他们的朋友数组列中。
看起来像这样(不使用UML道歉):
问题在于接受过程会消耗 A LOT 的请求。
1- 1x请求:将状态更改为Accepted
2- 2x请求:获取两个User
个对象以更新好友列
3- 2x请求:将User
与更新的朋友列
我想知道是否有一种减少请求数量的巧妙方法,更具体地说,有没有办法在不检索其父对象的情况下向数组中添加元素?
答案 0 :(得分:0)
我需要将其从5个请求减少到2个。
我没有发出获取这两个用户的请求,而只是通过在本地声明$radius = 200;
for ($i = -10; $i <= 10; $i++) {
$pos_x = $i * 20;
$pos_y = Math.round( Math.sqrt( Math.pow($radius,2) - Math.pow($pos_x,2) ) + $radius );
}
来确定我要更新的User
。
然后,我将这两个对象的id
列更新为具有唯一指针的即将成为朋友的用户。
最后,我添加要保存在数组中的两个对象,并在该数组上调用friends
。
saveAll