用于列出数据以选择

时间:2016-02-16 23:47:18

标签: mysql sql database performance jdbc

我为我的大学课程实施了一个小型数据库。 (当然)有一些操作要在DB中的某些记录上执行,其中有许多记录,用户不可能知道/记住所有这些记录。

作为一个例子,我有一个操作"查找与盘号相关的事件"。我以这种方式在JDBC中实现它:

执行一个列出DB中所有板号的查询(从板#中选择*) 打印所有结果 从用户那里获取所选板块的输入# 执行查询"查找与板号相关的事件" (如果找不到板#,则打印错误。)

现在,我不知道这是不是很好。我的理由是,用户不能事先知道所有的牌照#,所以我必须列出它们以便他可以选择一个。执行一个列出所有内容的查询是我想到的唯一方法(因为我无论如何都无法以任何其他方式访问这些数据)。

这是错误的还是有正确的" /接受的方法来处理类似的问题?

2 个答案:

答案 0 :(得分:0)

这是错的;在那种特殊情况下(在我看来)。

“盘子”的数量可能是数百万,或者可能只有几千。重点是,如果您尝试提供所有信息,那么该信息的数量可能会对用户造成压力,而且它可能也会导致严重的性能问题。

如果只有几个选项,则将它们呈现给用户以供选择。如果有很多选择,那就不要这样做。

为什么不允许搜索缩小可能性呢?

而不是提前提供所有板块?

答案 1 :(得分:0)

取决于您可以使用多少个可能的印版: -

  1. 统计他们select count(*) from...并实施分页,每页提供合理的数量,并有排序标准。
  2. 让用户以第一个字母(A&#39 AB,ABG,AC,AH,AIB等)登上牌号,然后一次列出一页。 (假设有一个计划,就像德国城市一样)。
  3. 如果用户知道部分许可证号,请使用正则表达式。