2

这是我的问题:我需要存储大量日志消息,并且认为将其保存在 SQLite3 数据库中以便能够轻松搜索和过滤它会很聪明。

我将在标准列表小部件中显示日志消息(使用 wxWidgets)。该列表将有几列,并且可以由用户进行排序和过滤。

现在,我不确定处理这个问题的最佳方法是什么。我正在考虑一些可能的解决方案:

  1. 将所有消息读入内存。当有新的或更改的日志消息(在列表中的随机位置)时,必须刷新整个列表。当用户想要过滤列表或在不同的列上排序时也是如此。
  2. 将所有 ID 读入一个数组并按需检索完整的日志消息(当用户滚动列表以使其可见时)。
  3. 使用 SQL 接口按需获取结果,使用 SQL 选择所需的确切子结果。

但实际上,我只是不习惯处理这种问题,所以任何提示都值得赞赏!

4

2 回答 2

2

如何使用分页?

SELECT *
FROM logs
WHERE ...
ORDER BY ...
LIMIT offset, count

其中 offset 和 count 是您可以选择的值。您可以使用它来获取任意数量的日志条目。然后添加一个下一步按钮以允许用户查看下一页条目。结合过滤和排序的能力,日志搜索再简单不过了。

于 2009-05-04T19:25:54.793 回答
1

开始写这篇文章作为对 Nadia 答案的评论,但我开始漫无目的,它太长了:)

请记住,随着日志条目的数量变得非常大,滚动条变得毫无用处。滚动中最微小的移动最终会在列表中剧烈移动。这使得用户用于搜索列表变得不切实际。

想想为什么用户实际上会浏览这些条目并围绕它进行设计。非常大的列表不仅难以在代码中使用,而且用户也难以使用。我可能会给他们一些过滤条件和分页结果。

于 2009-05-04T19:48:13.680 回答