用于存储缓存SQL查询的数据结构是什么?

时间:2011-11-04 14:22:11

标签: sql delphi delphi-2007

我想使用这样的数据结构:

  building string  (indexed)
  date     TDate   (indexed)
  room_id  integer (indexed)
  measurement_data -> various fields

更改远程SQL服务器中的数据库查询。

这样我只需要为给定的建筑物查询一次数据库,我就可以使用Delphi中间件应用程序将各个数据项分发给后端。

您建议使用哪种数据结构来存储这些内容,以便我可以快速检索数据项。

我正在考虑将它放在一个带有上述项目的类中,并将对象放在TStringList中,但之后我只有1个数据索引。
因为我正在检索个别项目,所以我不想使用客户端数据库 是否有更好的TList变体可以让我快速检索项目。

换句话说,TStringlist(附加)对象只允许一个索引。 (字符串)是否有更好的List,允许多个索引?

修改
TCollection听起来像是一个更好的匹配,这是一个好主意吗?

2 个答案:

答案 0 :(得分:8)

在我的一个旧项目中(在Delphi 7周围),我通过多个TList存储指向记录的指针来实现这一点。其中一个列表拥有项目并负责清理,其他列表指向相同的项目,但每个列表的排序方式不同,作为二进制搜索查找的索引。除了他们的订单之外,列表是相同的并且保持同步 - 添加项目会添加到所有列表中,从所有列表中删除项目。

另一种选择是使用TClientDataSet或其他具有索引支持的内存数据集。

答案 1 :(得分:1)

可能是:SynBigTable a'在内存中'快速表,包含字段,索引和搜索。