我想创建一个具有类似数据库的搜索功能但没有SQL数据库的桌面应用程序

问题描述 投票:0回答:1

我知道基本的SQL,在存储和检索数据时我只知道SQL。我想创建1个.exe,它应该包含所有约100,000个键值对(我在.txt文件中有数据),也许还有一个额外的描述属性(我会加我自己-像是给自己的便条)。

我还想用一种我不知道的新语言来编写它;像python或C#(我已经用Java和VB.net编写了所有带有SQL数据库的桌面应用程序)。所以语言不会成为问题,我希望提出建议。

这些键值对可能不需要更新,我愿意重新编译/重新打包代码以对数据进行1次更改。密钥长6个字母,末尾2个数字,例如hxnaaa01。这些字母中的每个字母都代表或描述了自己的某些东西,因此我还需要在特定位置上搜索特定字母以准确获得我所需要的。

我知道正则表达式可以很好地满足我的需求,但是我所提到的只是我所知道的。我了解得还不够,我也不知道谷歌使用哪些关键字。

我已经阅读了有关XML和CSV的文章。我真的不知道它们是什么,我不确定所有这些如何适合1个可执行文件。

总结,我需要:

  • 1个可执行文件(Windows桌面应用程序)
  • 搜索功能〜100k KVP + 1more属性(使用正则表达式?)
  • 无数据库
  • 使用GUI
  • 向每个KVP添加“注释”的功能
  • 应该轻巧快速
windows search desktop-application key-value no-database
1个回答
0
投票

1个可执行文件(Windows桌面应用程序),没有数据库

数据持久性将需要其他文件或数据库。这几乎是不可避免的,您可以将数据存储在内存中,但是只保留到内存中就可以了。

您还有另一个要求:“快速且轻巧”。

要实现此要求,您需要真正考虑您的解决方案,使用的技术以及将来如何改进它。

尽管搜索数据非常简单,但有效的解决方案却并非如此。它需要对算法,数据结构和一般实践进行前期研究。 (它本身就是一个兔子洞)。

对于JSON [1],您需要创建一个包含所有键/值对的附加文件,您可以使用C#创建该附加文件(例如,首次启动时。)>

JSON承诺是轻量级的,我倾向于同意,有些可能不会。在处理文件系统时,我认为通常可以从轻量级解决方案中获得同意。

尽管JSON非常易读:

{ "key": "value", "comment": "oh this is cool" }

[快速,轻巧的因素很多,因此您需要进行一些研究。

老实说,根据您的经验,我不会过多地关注

fast

,我会更多地关注它的工作,然后将其重构为fast
(如果太慢的话)。 [2]同样,根据您的经验,我会坚持打开文件,使用for / loop来查找我的密钥,并对发现的数据进行某些处理,并奖励自己拥有有效的方法。

TL; DR:您需要文件或数据库来进行真正的持久存储,JSON或远程托管的MySQL都可以使用。在您拥有

工作之前,请不要过多地专注于fast

  • https://stackify.com/premature-optimization-evil/ [2]
  • © www.soinside.com 2019 - 2024. All rights reserved.