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的声音听起来像鞋子.
有吗?有什么理由没有吗?
Ruby 的DataMapper项目是一个 ORM,并且很乐意通过使用适配器与键值存储进行通信。
\n\nRedis和MongoDB都有已经存在的适配器。CouchDB 有一个适配器 \xe2\x80\x94 它没有维护,但在某一时刻它工作得很好。我认为还没有人用 Cassandra 做过任何事情,但没有理由不能这样做。Google App Engine 的Dubious 框架采用与 Data Mapper 非常相似的方法来使数据存储可供应用程序使用。
\n\n所以用键值存储进行 ORM 是很有可能的。ORM 实际上需要避免 SQL 是其主要词汇的假设。
\n