题
这是我的问题:我需要存储 lot 的日志消息,并认为将它保存在SQLite3数据库中以便能够轻松搜索和过滤它是明智的。
我将在标准列表小部件中显示日志消息(使用wxWidgets)。该列表将包含多个列,可由用户进行排序和筛选。
现在,我不确定处理这个问题的最佳方法是什么。我正在考虑一些可能的解决方案:
- 将所有消息读入内存。当有新的或更改的日志消息(在列表中的随机位置)时,必须刷新整个列表。当用户想要筛选列表或对不同列进行排序时,也是如此。
- 将所有ID读入数组并按需检索完整的日志消息(当用户滚动列表以使其可见时)。
- 使用SQL接口按需获取结果,使用SQL选择所需的确切子结果。 醇>
但实际上,我只是不习惯处理这类问题,所以任何提示都会受到赞赏!
解决方案
如何使用分页?
SELECT *
FROM logs
WHERE ...
ORDER BY ...
LIMIT offset, count
偏移和计数是您可以选择的值。您可以使用它来获取任意数量的日志条目。然后添加下一个按钮以允许用户查看下一页条目。结合过滤和排序功能,日志搜索不会更容易。
其他提示
开始写这篇文章作为对Nadia的回答的评论,但我开始漫无边际,它太长了:)
请记住,随着日志条目的数量变得非常大,滚动条变得无用。卷轴中最微小的动作最终会大幅移动到列表中。这使得用户用于搜索列表是不切实际的。
考虑一下为什么用户实际上会查看这些条目并围绕它进行设计。非常大的列表不仅难以在代码中使用,它们对用户来说也很难。我可能会给他们一些过滤标准和分页结果。
不隶属于 StackOverflow