【问题标题】:Can Haskell pretend to be a database, and if so, how?Haskell 可以伪装成数据库吗?如果可以,怎么做?
【发布时间】:2012-05-21 01:51:32
【问题描述】:

我意识到这可能是一个愚蠢的问题,但是有没有办法让 Haskell(或使用一些带有 Haskell 的库)让它像 SQL 数据库一样工作?如果有,怎么做?

类似于 SQLite,但没有持久性?

我的想法是我可以创建 Haskell“表”和 Haskell“索引”(存储在内存中)并且外部应用程序可以查询它们。

如果不能处理连接也没关系。

原因是外部应用程序需要查询数据库,但我想将我的数据保存在acid-state 中,并且不想一直做将东西转储到数据库的中间步骤。

【问题讨论】:

  • 是的,Haskell 可以做到。 :) 如果您的问题实际上是“如何?”,那么答案要复杂得多。
  • 这很简单。但是你需要选择一个协议和一个传输,然后设计一个 API。 JSON over HTTP(可能带有 RESTful URL)是一个相对简单的选择。
  • 请记住,我不希望 Haskell 连接到 SQL 数据库,我希望 Haskell 程序成为 SQL 数据库。
  • 如果您想在查询中解析真实的 sql,请考虑:hackage.haskell.org/package/hssqlppp,如果您想进行插入式互操作,请考虑使用 cassandra 或 mongo 的现有包编写后端...

标签: database sqlite haskell acid


【解决方案1】:
【解决方案2】:

我的想法是我可以创建 Haskell“表”和 Haskell“索引”(存储在内存中)并且外部应用程序可以查询它们。

当然,无论您使用哪种编程语言,您都可以在应用程序中公开一个接口(可能通过套接字等)来构造和查询数据。

【讨论】:

  • 我还没有听说过 Haskell 中有任何类似 SQL 的语言的实现,但是有一些机制可以构建关系数据集合并查询它们(例如通过 acid-stateixset)。
猜你喜欢
  • 2012-04-08
  • 2011-07-17
  • 1970-01-01
  • 2017-09-26
  • 2016-04-25
  • 2023-03-05
  • 1970-01-01
  • 2021-06-30
  • 2023-03-15
相关资源
最近更新 更多