数据库一对多设计表,一个用户对应多条数据,该如何查询

比如两个表,一个用户表,一个图片表,图片表有一个用户id字段记录此条数据属于哪个用户,一个用户有 n 张图片。当我想选出某个用户的所有图片,可以用图片表的用户id字段来筛选。现在我点开某个用户的资料后,同时也要显示出那个用户的所有图片,我该如何查询???用模板如何使用?

评论区

潇洒太爷

2018-05-22 11:50

最浅显简单的方式:
1、查出用户资料 user。
2、根据用户资料的ID,查出该用户的图片,放到user对象中,比如:user.set("imgList", list);
3、页面中,直接用模板#for 遍历user.list显示
这样就可以了,具体怎么模板怎么遍历,可以看文档 http://www.jfinal.com/doc/6-4

潇洒太爷

2018-05-22 11:51

不好意思,不能用user.set("imgList", list) ,要用user.put("imgList", list)

HingLo

2018-05-22 12:17

@潇洒太爷 有个问题就是,user是主表,里面肯定不会有“imgList”这种字段,所有你这个方案有些问题,我建议是使用Db 模式,先查询user信息放在Record对象record中,然后通过userId来查询图片的集合,假设为“imgList”,然后在把imgList放到record对象中即可,即record.set("imgList",imgList),总之需要查询2次,然后将Record对象反馈到前端就好。

潇洒太爷

2018-05-22 17:27

@HingLo 一样的。直接用dao.find的方式查出user,后面再查一次imgList,用user.put("imgList", list),这样也是可以的,只是说,你不能用user.set(imgList),这样会报错。
如果你习惯用Db+Record方式,也没问题。

热门反馈

扫码入社