记 一个很简单的查询需求 的疑惑
最近开发遇到的问题: 需求很简单: 一个列表,几个查询框。列表类似这样 是分为子级和父级的。 字段有一个操作时间。 查询框也有操作时间,包括开始时间,结束时间。 需求是:如果在查询框里选择了操作时间,这个操作时间是即查询子级,也查询父级的。 详细说就是:如果子级在这个时间段中,父级不在,也要能查出来父级。
这个需求看似很简单。但其实是有点东西的。 我是搞后端的,我们项目组是前后端分离的。 这是背景。下面说一下问题: 两种实现方式: 1、一次返回子级父级的所有数据。但这样的话,一旦数据多了,效率就不太好,而且子级是要分页的,滚动更新。如果全返回,那就只能假分页,肯定不行。 2、子级和父级的查询分开,进入页面先查询父级,点击展开,再查询子级。 但是这样就带来一个问题,如果选择了操作时间,点击展开时,前端是不能把这些查询参数给后端的,因为如果用户先点击了查询,再修改查询参数,再点击展开时怎么办? 但是后端肯定要这个参数来查询子级呀,所以这个需求就完成不了。
其实也有折中的办法,把子级的查询分开,不用树形列表,把子级做成弹框,弹框中再查询。但这样等于改需求了,而且原来的查询功能的需求也等于没有实现。
下面来分析一下: 从需求角度来说:这个需求没毛病,我就是想查询某个时间段的子级,并且不需要知道父级是哪个。所以才都要查。
从后端的角度讲:除非前端传了requestid,标记一下前后的两次请求,否则我没办法在查询子级时准确返回。
从前端的角度讲:这个子级的查询参数确实不应该传。
但从另一个角度讲,这个操作时间查询框确实有点模糊,到底是查询父级还是子级?
这个问题很不好描述,果然我的语言表达能力还很欠缺。
总之,有没有大佬能给我解下惑?
2022年10月22日更新: 回家的路上想了一路,确实应该是前端给传参数,应该是在点击查询后把参数保存起来,然后子级查询时传参。 因为站在用户角度,我点击查询后,父级和子级应该是已经查出来了的,这个时候修改查询参数,只要没点击查询,上一次的查询结果是应该不变的。这样传参就没问题了。 这就和分页查询一样的,如果分页查询带了查询参数,分页时是应该传参的,且应该是上一次点击查询时保存的参数,而不应该是实时的参数。