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 属性(使用正则表达式?)
  • 没有数据库
  • 带图形用户界面
  • 能够为每个 KVP 添加“注释”
  • 应该是快速和轻量级的
4

1 回答 1

0

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

数据持久性将需要额外的文件或数据库。这几乎是不可避免的,您可以将数据存储在内存中,但只要它驻留在内存中,它就会持续存在。

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

为了达到这个要求,您需要真正考虑您的解决方案、您使用的技术以及将来如何改进它。

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

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

JSON 承诺是轻量级的,我倾向于同意,有些可能不同意。在处理文件系统时,我认为它往往远非轻量级解决方案。

JSON虽然可读性很强:

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

有很多因素会影响快速和轻量级的东西,因此您需要进行一些研究。

老实说,根据您的经验,我不会过多地关注快速,我会更关注它的工作,然后将其重构为快速的东西,如果它太慢的话。[2]

再一次,根据您的经验,我会坚持打开文件,使用 for/loop 来查找我的密钥并使用找到的数据做一些事情,并奖励自己拥有一些有用的东西。

TL;DR:您需要一个文件或数据库来实现真正的持久存储,JSON 或远程托管的 MySQL 都可以。在你有一些有用的东西之前,尽量不要过分关注快速

于 2020-05-11T02:19:06.170 回答