是否有ORM(OKM)用于键值存储?

Xeo*_*oss 5 database orm nosql

已经创建了Object-Relational-Mappers来帮助应用程序(以对象的方式思考)以与其他类/对象类似的应用程序友好方式处理存储的数据.

但是,我从未见过NoSQL"Key/Value"存储系统的OKM(Object-Key/Value-Mapper).这看起来很奇怪,因为需要更多的东西,因为更多的价值关系必须硬编码到应用程序中而不是常规的单个SQL表行对象.

four requests:
user:id
user:id:name
user:id:email
user:id:created

vs one request:
user = [id => ..., name => ..., email => ...]
Run Code Online (Sandbox Code Playgroud)

此外,您必须跟踪"列表"(发布has_many评论),因为您没有通过表或外键使用has_many.

INSERT INTO user_groups (user_id, group_id) VALUES (23, 54)

vs

usergroups:user_id = {54,108,32,..}
groupsuser:group_id = {23,12,645,..}
Run Code Online (Sandbox Code Playgroud)

还有更多的逻辑示例,应用程序需要复制正常关系数据库使用的一些基本功能.所有这些原因使OKM的声音听起来像鞋子.

有吗?有什么理由没有吗?

Bob*_*man 4

Ruby 的DataMapper项目是一个 ORM,并且很乐意通过使用适配器与键值存储进行通信。

\n\n

RedisMongoDB都有已经存在的适配器。CouchDB 有一个适配器 \xe2\x80\x94 它没有维护,但在某一时刻它工作得很好。我认为还没有人用 Cassandra 做过任何事情,但没有理由不能这样做。Google App Engine 的Dubious 框架采用与 Data Mapper 非常相似的方法来使数据存储可供应用程序使用。

\n\n

所以用键值存储进行 ORM 是很有可能的。ORM 实际上需要避免 SQL 是其主要词汇的假设。

\n