我想使用这样的数据结构:
building string (indexed)
date TDate (indexed)
room_id integer (indexed)
measurement_data -> various fields
更改远程SQL服务器中的数据库查询。
这样我只需要为给定的建筑物查询一次数据库,我就可以使用Delphi中间件应用程序将各个数据项分发给后端。
您建议使用哪种数据结构来存储这些内容,以便我可以快速检索数据项。
我正在考虑将它放在一个带有上述项目的类中,并将对象放在TStringList中,但之后我只有1个数据索引。
因为我正在检索个别项目,所以我不想使用客户端数据库
是否有更好的TList变体可以让我快速检索项目。
换句话说,TStringlist
(附加)对象只允许一个索引。 (字符串)是否有更好的List,允许多个索引?
修改
TCollection
听起来像是一个更好的匹配,这是一个好主意吗?
答案 0 :(得分:8)
在我的一个旧项目中(在Delphi 7周围),我通过多个TList
存储指向记录的指针来实现这一点。其中一个列表拥有项目并负责清理,其他列表指向相同的项目,但每个列表的排序方式不同,作为二进制搜索查找的索引。除了他们的订单之外,列表是相同的并且保持同步 - 添加项目会添加到所有列表中,从所有列表中删除项目。
另一种选择是使用TClientDataSet
或其他具有索引支持的内存数据集。
答案 1 :(得分:1)
可能是:SynBigTable a'在内存中'快速表,包含字段,索引和搜索。