收藏
回答

对广场的评论点赞,每个用户对每个评论只能点赞一次,再点赞即收回点赞,怎么实现?

RT,评论的记录存放在云服务器的一个集合中。

之前想过设置一个upStatus在记录内,但是这样就变成把所有人点赞权限绑定在一起了,我点赞一个评论,点赞数+1,别人再点赞,点赞数又回去了

也想过把upStatus放在本地存储里,用一个元组记录分别都给哪些评论Id点了赞,以后给评论点赞就getStorage检查upStatus的值,用户头像和昵称就是这样存储的,和其他非独特的评论属性分离就不会影响到所有用户了。但是一想每个用户都要拖着本地存储一张亢长的"分别都给哪些评论点过赞"表格(以后简称为upList)总觉得很浪费空间,而且本地存储毕竟是有限的,但是除了本地存储,还能用什么"个人数据库"存储这个upList让其成为某个使用者的独立数据而不是所有用户的全局数据?

回答关注问题邀请回答
收藏

2 个回答

  • 雪线
    雪线
    2021-04-22

    引用楼主:“也想过把upStatus放在本地存储里,用一个元组记录分别都给哪些评论Id点了赞”

    没太看懂这个,你是说把点赞的数据放在一个binary数组里面吗?

    其次不明白为啥要用本地存储.


    我看了楼主的需求,我觉得似乎很简单啊, 存储在数据库里面阿, 设定一个数组,记录用户点赞过的***的id即可, 为了不太浪费空间,一个用户最多存储几百几千个即可.

    2021-04-22
    有用 1
    回复 5
    • 另一种开始
      另一种开始
      发表于移动端
      2021-04-22
      这部分我确实没说清楚,我的设想是对每个用户都有一个专门存放其给哪些评论点了赞的数组, 大概像是upList=[ { 评论id1,评论id2,评论id5...... } 放本地存储的原因是这个和用户信息一样都属于用户特有的数据,除了本地存储我不知道还能放哪里,可能你的意思是把这个数组作为云数据库内的用户的注册记录内的一个属性?
      2021-04-22
      回复
    • 雪线
      雪线
      2021-04-22回复另一种开始
      你做的不是小程序吗? 小程序为何要本地存储, 存在云端阿,做一个字段存进去,几十万条都能hold住
      2021-04-22
      回复
    • 另一种开始
      另一种开始
      2021-04-25回复雪线
      兄弟,问题来了,广场的评论点赞数据是和云数据库内的相关字段连通,每次点赞,操作用云数据库的函数我写在一个commentDB.js里,每次点赞我都要异步调用commentDB的函数先取得upList后才能判断更新页面点赞数和点赞图片,异步得延迟个2-3秒点赞的界面才会更新,如果要即时更新咋搞?
      2021-04-25
      回复
    • 另一种开始
      另一种开始
      2021-04-25
      import {
        commentDB
      } from '../../../databases/commentDB.js';
      const com_db = new commentDB();
      2021-04-25
      回复
    • 雪线
      雪线
      2021-04-27回复另一种开始
      异步得延迟个2-3秒点赞的界面才会更新     搞不懂为啥要延迟2-3秒才更新

      点赞的瞬间界面就可以相应,你为啥要等服务端消息你才相应?
      2021-04-27
      回复
  • 另一种开始
    另一种开始
    2021-04-27

    问题基本解决,至于延迟问题的解决方法是采用先设置本地页面视图层,再调用异步代码操作云数据的方法编写代码。

    2021-04-27
    有用
    回复
登录 后发表内容