两个数据表存在外键关联一般建议用数据冗余的方式,将必要的信息存到一张表,避免二次查询。(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();