我正在编写一个小型的独立Lua工具,它使用树中的几个键/值对作为数据存储。我的原型是使用Lua表,它们非常适合我的任务。但是表条目会不断变化和增长。对我来说,这似乎是将所有数据存储在数据库中的一个很好的理由。
许多较小的工具依赖于SQLite数据库,但我认为如果想要存储中小型Lua表,必须有更好的(键值)解决方案。我读到了使用SQL存储树,但乍一看看起来很复杂。
是否有 KISS 解决方案用于在数据库中存储和检索Lua表,可能还有查询语言?
数据库仍然很小,应该是持久的,不需要处理并行查询。性能也没有问题,该工具仅限单用户。我更喜欢基于磁盘/文件的数据库。理想情况下,DB的更新(查询/脚本)应受版本控制。
首先我认为(G)dbm是可能的候选者(参见here),但我不知道一个简单的"可编写脚本的#34;修改和创建新条目的方法(就像使用SQL语句一样)。
我想避免使用基于MongoDB的完整的基于服务器的解决方案或者像Neo4j这样的图形数据库,它们对我手头的任务来说是过度的。
答案 0 :(得分:1)
我的lgdbm绑定包含gdbm数据库的表代理。换句话说,只需通过读写Lua表中的条目即可与gdbm数据库进行交互。
为了简单起见,lgdbm仅适用于字符串键和值,但如果需要,可以修改它以处理其他类型。