美文网首页
数据关联

数据关联

作者: sweetBoy_9126 | 来源:发表于2019-01-13 00:19 被阅读5次

    我们的需求是需要在一个歌单(playList)下展示多首歌,比如我们现在有三首歌song,它们都有一个id,我们最初的办法是在playList里存一个songs然后里面分别存歌曲的id,但是如果我需要拿到每首歌的name,我还得对songs里面对应的id再分别取发送请求,这时候如果有一百首歌的话,那么它就会先对playList发送一次请求拿到songs的id,然后再分别对每个id发请求也就是需要请求101次,这就是只存id的缺陷
    解决方法:使用数据关联
    在leancloud里使用一对多关系的数据关联

    var Song = AV.Object.extend('Song')
    var song = new Song()
    song.set('name','111')
    
    var Playlist = AV.Object.extend('playList')
    var playlist = new Playlist()
    playlist.set('name','专辑1')
    //只需要添加下面一行,就可以让song属于playlist,也就是前面是子元素后面是父元素
    song.set('dependent',playlist)
    song.save()
    

    运行上面代码后发现Song里面新添加了一个name是111的歌曲,这首歌曲多了一个dependent而它的id就是playList的id

    现在这种方案就是一个playlist里面有一个id,然后有一个name,之后song里面的歌曲都有自己的id和name,然后还有一个dependent存的是playlist的id,所以现在只需要发一个请求拿到playlist,然后根据playlist的id再发一次请求就能找到song下面所有dependent为playlist的id的所有歌曲

    取消关联状态,从当前数据下删除子数据

    只需要调用更新api,把dependent设置为null

    var song = AV.Object.createWithoutData('Song', songId);
     // 修改属性
    song.set('id',songId)
    song.set('dependent', null);
     // 保存到云端
     return song.save()
    

    相关文章

      网友评论

          本文标题:数据关联

          本文链接:https://www.haomeiwen.com/subject/weecdqtx.html