Javascript 关系数据库

Posted

技术标签:

【中文标题】Javascript 关系数据库【英文标题】:Javascript Relational Database 【发布时间】:2011-09-27 10:15:58 【问题描述】:

长话短说:我想将几个 javascript 关联数组视为一个数据库(其中数组是表)。这些关系可以由数组内的特殊字段表示。我对数据库的持久性方面不感兴趣,我只想能够使用类似 SQL 的语言查询数组并以关联数组的形式检索数据集。

我的问题:是否有任何具有此类功能的 javascript 库?否则,是否有任何库至少可以处理类似 SQL 的语言部分?

谢谢

【问题讨论】:

【参考方案1】:

我相信最接近您需要的是jLinq library。它可以对 js 对象和数组进行操作,与对数据库的操作方式非常相似,但方式略有不同。您并没有真正编写查询,而是使用方法来构造它们。总的来说,我认为它要好得多。

【讨论】:

jLinq 似乎正是我想要的,我去看看。【参考方案2】:

一些谷歌搜索发现:http://ajaxian.com/archives/two-js-solutions-to-run-sql-like-statements-on-arrays-and-objects 这似乎很有趣。

我能问一下你为什么要这样做吗?

【讨论】:

谢谢。我们正试图尽量减少查询一些主要由静态信息组成的远程数据库的需要。这个想法是将它们加载到数组中并在本地查询它们,而不是每次需要信息时都进行远程调用。 您真的需要 SQL 语言来做到这一点吗?您当然可以将所有内容存储在 javascript 中,然后以编程方式读取数组。【参考方案3】:

我在搜索相关内容时遇到了这个问题。想与您分享(9 年后,我确实意识到)我有同样的需要/需要,我正在处理的脚本在各种信息源之间有很多交叉引用要做。我使用 PowerShell。从一个循环中枚举对象数组,这是在枚举其他对象,只是不好/慢/可怕。

迄今为止,我的解决方案是获取我的所有数组,然后从中制作哈希表,其中键/名称是所有数组共有的属性值(例如 ObjectId (GUID)),其值为数组中的整个对象。有了这个,在我的循环中枚举 Array#1 时,我可以通过检查相应哈希表中键的存在来检查任何其他数组中是否存在这个当前项,这样就没有枚举其他数组,只需直接、同等努力地访问数组中的正确项(但实际上来自新建的哈希表)。

所以我的数组只是临时收集桶,然后我从那里做的所有事情都使用哈希表,它们只是索引/查找表。

当我偶然发现这里时,我正在寻找的解决方案是在我的脚本的构建/规划阶段跟踪所有不同的哈希表。

【讨论】:

以上是关于Javascript 关系数据库的主要内容,如果未能解决你的问题,请参考以下文章

javascript中,数据类型和对象的关系(区别)

哪个 Javascript MVC 框架最好地处理关系数据?

理解JavaScript中各种二进制对象关系

再探Javascript事件循环及其与浏览器渲染的关系

浅谈javaScript数据类型变量内存之间的关系,文末有图解

javascript学习笔记:DOM节点关系和操作