• 页面中查询模块的设计与实现思路


    在做一个物品的展示管理页面,想把增删改查都放到页面中,用axure画了一个页面,比较简单,主要分为上下两部分,上半部分是查询模块,下半部分是表格,用来展示数据。新增按钮单独在页面中,修改按钮在表的每一行数据后面,删除按钮在表格下面,将表格中的数据每一行设为可选,选择后进行删除操作。查询部分没有考虑很多,只是列了几个物品的主要属性,有下拉框有文本框,可选可填,然后查询,其实默认的就是这些查询条件之间是“与”的关系。


    图1 自己设计的查询模块
      项目在讨论的时候,技术领导说了一下这个地方设计的问题,也提了一些设计思路。下来之后,自己查资料看了看相关的查询设计,总结了几种查询(或者称检索、过滤等)的设计与实现思路,查询种类的名称自己起的,可能不太严谨,技术实现主要针对后台数据库,谈一谈实现的思路。
    一 智能查询


    图2 智能查询实例
    1 界面设计
      这种查询,界面比较简单,平时我们用的百度,google的查询,还有很多网页的全网查询,比如,CSDN的博客查询,都是属于智能查询。只有一个输入框,外加一个查询按钮,用户可以输入任意自己想要查找的内容,然后点击查询按钮就可以获得查询结果。

    2 技术实现
      查询界面很简洁,功能却很强大,实现要靠后台做大量的工作,像google、百度实现起来可能更复杂,毕竟,靠这个搜索能撑起一个公司,技术肯定不会简单。我们做过类似的智能问答,也算是智能查询,说一下我们的实现思路。
      着重针对中文输入的查询,首先是分词,英文不存在分词问题,空格就是明显的界限。中文分词研究的比较多,可以在网上找一个开源的或者提供API接口的直接使用,这样就可以将输入分为很多词,然后根据这些词分别进行查询,每个词都可以得到很多结果,这时候,就可以设计一定的策略,比如按照词的长度设计权重,重叠的结果将权重进行叠加,最后可以将结果进行排序。也就是我们得到最终答案。

    二 万能查询


    图3 万能查询实例
    1 界面设计
      这种查询可以将查询条件任意的组合,每个查询条件都是一个键值对,键值对由字段和字段的值构成,比如CNKI的期刊检索,可以将多个条件进行逻辑组合,篇名有hello,篇名有kitty,主题有haha,主题有test等,再加上与,或,非的逻辑关系,查询条件就是篇名有hello而且有kitty,或者主题有haha并且没有test的期刊。可以在查询条件中将所有的属性都列出来,再用与或非逻辑组合,这种查询方式很通用,针对不同的数据,只需要更改属性就可以了,也就是数据的字段,可以做到一次编程,到处使用,所以称为万能查询。不过这种查询方式,不是太友好,需要用户输入的东西比较多,操作起来相对麻烦,只适用于特定的场合,比如CNKI,数据量大,查询比较开放。

    2 技术实现
      这类查询后台实现相对简单,可以直接根据页面的查询条件,拼接查询语句。比如关系型数据库的SQL语句,and、or、not都是现成的语法,可以将组合的条件直接转换为SQL语句,然后到数据库中进行查询,可以很快得到结果。

    三 便捷查询


    图4 便捷查询实例
    1 界面设计
      为了方便用户查询,便捷只把那些特别重要的属性列出来,供用户选择,也可以看作是过滤,条件不断叠加,范围逐渐缩小,直到找到要查找的物品。比如京东想购买一款笔记本,通过电脑整机–>笔记本–>家庭使用,然后再添加其他条件,价格、品牌、尺寸、处理器、内存等,最后得到自己想要的结果。这类查询,会把用户关注的属性都列出来,然后让用户选择,操作简单,容易上手,界面比较友好,用的比较多。

    2 技术实现
      这类查询是层层过滤的,用户每增加一个查询条件后,就将该条件放到缓存中,结果显示出来,再增加条件,把这个条件与前面的条件进行叠加,在查询结果中进行二次查找,再次得到结果。具体实现,可以将查询结果放到临时缓存中,下一次查询在缓存结果中查找,可以提高查询效率。

    总结
      查询模块是页面中比较常用的一个模块,页面中经常会碰到,原来没有太注意,这次多看了一下,找到了这么几种,简单做下记录,如果有其他比较典型的查询设计,也希望朋友们不吝赐教。

  • 相关阅读:
    题解 BZOJ1026 & luogu P2657 [SCOI2009]windy数 数位DP
    BZOJ 1867 [Noi1999]钉子和小球 DP
    P5057 [CQOI2006]简单题 前缀异或差分/树状数组
    P2051 [AHOI2009]中国象棋 大力DP
    P4208 [JSOI2008]最小生成树计数
    BZOJ 2440 [中山市选2011]完全平方数 二分+容斥
    Luogu P1951 收费站_NOI导刊2009提高(2) 二分 最短路
    Luogu P3527 [POI2011]MET-Meteors 整体二分
    Luogu P4109 [HEOI2015]定价 贪心
    Luogu P2114_[NOI2014]起床困难综合症 贪心
  • 原文地址:https://www.cnblogs.com/coodream2009/p/9830242.html
Copyright © 2020-2023  润新知