代码之家  ›  专栏  ›  技术社区  ›  Pentium10

移动应用程序显示数千条记录的最佳方式?

  •  2
  • Pentium10  · 技术社区  · 15 年前

    假设您有一个更大的客户数据库,例如5000条记录。使用简单的select查询,移动应用程序可能需要2-5秒的时间来填充拥有数千个可用客户的ListView。

    但是用户只需要选择一个,那么选择客户的最佳方法是什么? 如果您有一些记录,例如:50个客户,选择滚动列表是最好的方法,但是您要做什么来满足从数千个客户中选择的显示?

    您如何将此问题用于显示库存项目以将其包含在发票中?
    这与客户情况不同,因为您将重复向发票添加库存项目?

    编辑1
    我向客户查询客户数据库/客户数据库

    5 回复  |  直到 15 年前
        1
  •  2
  •   TechZen    15 年前

    在具有小屏幕和限制性输入的移动设备上,您可以使用分层数据显示来管理大数据集,从完整集的抽象开始,然后向下钻取到实际的单个条目。

    所有数据都可以分为具有自己子群的子群等。要在移动设备上显示大型数据集,只需找到子组并按最大到最小和/或最一般到最具体的顺序显示它们。

    例如,假设您有一个大型的服装数据库。服装有几个长期确立的和文化上接受的子类别,所以你可以使用它们来掩盖尺寸和复杂性,就像百货公司使用类别来引导客户到正确的部门一样。

    当用户打开应用程序时,它将执行查询以获取最高级别的子类别。在本例中,这是指儿童、男子和女子。当用户选择说男子用品时,他们会得到男子用品类别的列表,例如季节。然后是服装、衬衫、裤子等的类型,然后是特定服装的属性,最后是特定的服装。

    因此,用户通常会输入如下信息:男式——>夏装——>衬衫——>棉——>品牌——>颜色——>衬衫列表——>特定衬衫。在每个阶段,应用程序只显示几个选项供用户选择。

    搜索可能很棘手。在手机上输入详细搜索可能很困难,但广泛的搜索可以返回到许多项目。我认为搜索应该有一些自动的限制,比如允许用户从一个可管理大小的列表中选择类别搜索词。如果不能将搜索限制在合理的范围内,则搜索结果也应以层次结构显示。

    你会怎么回答这个问题 显示要包括的库存项目 在发票上?

    我会使用可切换的视图。在iPhone上,这将是一个标签。一个选项卡将包含您的发票,另一个选项卡将包含库存系统的层次导航。当您在“库存”选项卡中选择项目时,它会将它们添加到“发票”选项卡中。(如果您使用正确配置的数据模型,这将自动发生。)用户可以轻松地从库存添加项目切换到查看其发票。

    编辑01:

    我对Android不熟悉,但是在iPhone上,你可以有一个非常大的表的索引,它可以让你跳下可能有数百个条目长的表。查看联系应用程序以获取索引示例。

    当然,索引实际上只是一个伪装的层次结构。在联系人的情况下,联系人组有两级层次结构,按字母顺序排列,然后从每个字母开始。

    EdET02:

    您还没有讨论数据维护的含义。如果 你添加了很多类别 对于库存项目,有一个 维护这些设备的开销很高 最终用户的类别:库存 集团子集团子集团 子组gt;子组gt;个人 最终用户需要定义和 保持层次结构,然后 正确分类每个库存 每个类别中的项目。这是一个大 工作。

    嗯,你没有问过维护和更新的问题。您询问了如何显示用户只需选择一条记录的大量数据。

    然而,为了回答这个问题,我再次重申,由于所有数据集都有自然的类别,所以您总是可以通过编程的方式找到这些类别,以便自动发生。对于客户列表,您将具有名称、地址、电话号码、工作类型、联系频率、重要性等属性,通过这些属性,软件可以自动将客户分类为层次结构。世界上的每一个客户机管理程序都使用某种类型的自动分类来将数据分为可管理的块。

    你总是可以选择只创建一个搜索,但是同样,复杂的搜索很难在手机上输入。为了解决这个问题,你可以使用一些创造性的搜索建筑。例如,您可以让用户在名字和姓氏的第一个字母中键入,然后搜索该字母以生成一个可管理的大小列表。

        2
  •  1
  •   CommonsWare    15 年前

    你做的和在桌面或网络应用程序上做的一样:搜索。让他们搜索部分名称或其他条件并显示匹配项。对于库存项目,可以搜索项目代码、名称或类别。对于客户,您可以搜索部分名称、客户代码或城市。

        3
  •  0
  •   Community CDub    8 年前

    也许使用过滤器是个不错的选择?当然,这取决于具体情况,但可能会有所帮助。

    关于制作好过滤器的信息: How to dynamically update a ListView on Android

        4
  •  0
  •   tambler    15 年前

    添加第二层导航怎么样?您可以让一个列表显示字母a-z,而不是在一个列表中显示所有客户机,单击一个字母,然后只能显示以a开头、姓氏为a的客户机,等等…

        5
  •  0
  •   Brad Hein    15 年前

    要考虑的另一个因素是选择显示数据的视图的复杂性。是否可以只使用纯文本视图显示数据?