小天管理 发表于 2024年8月30日 发表于 2024年8月30日 场景描述 技术栈 Flutter+Drift+Riverpod ,有表todoRecord和user,现在需要查询出待办记录最多的五位用户,使用图表展示,并能够支持自动刷新。 查询todoRecord表,定位到userId出现次数最多的五条userId; 查询user表拿到用户信息如姓名; 绘制图表。 方案 因为需要实现自动刷新,那么使用到了 Drift 的 watch()函数返回 Stream 。 方案 1 ,分两次查询: StreamBuilder<List<TodoRecordData>>嵌套StreamBuilder<List<UserData>>; 方案 2 ,一次查询:自定义 SQL 处理连表查询,直接单StreamBuilder<List<(UserData, int)>>构建。
已推荐帖子