如果有两个数据表存在外键的关系,有没有什么好的解决方案?

知晓云 - 小晓云发表于:2018年12月24日 10:54:00更新于:2019年02月14日 11:19:03

两个数据表存在外键关联一般建议用数据冗余的方式,将必要的信息存到一张表,避免二次查询。(join 也是二次查询)

如果是一张表需要拿创建者的更多信息,我们对 created_by 做了一个优化,可以用 expand 操作符直接在一次查询里返回对应的 user 信息。云函数里查表和小程序端查表是差不多的。

如果只是做数据整合,可以考虑直接在小程序端做,一般来说,第一次查完数据,map 一次拿到关联表外键的值的列表,然后用 in 查询操作符,一次请求即可返回另一张表对应的数据。这样,总共两次请求即可完成。

知晓云-小程序开发快人一步

回复(1)

  • 不会动感光波的动感超人

    expand 查询方法  属性对应指针的对象,没生效,请问时怎么回事?


     let Record = new BaaS.TableObject("Record");

      let query = new BaaS.Query();

      let Company = new BaaS.TableObject("Company");

      let User = new BaaS.TableObject("_userprofile");


      return await Record.setQuery(query)

        .expand(["company", "user"])

        .limit(pageSize)

        .offset(offset)

        .find();


您需要登录后才可以回复