1
回答
一个关于数据库访问方式的设想:lua相关(转)
百度AI开发者大赛带你边学边开发,赢100万奖金,加群:418589053   

这篇文是人家在08年就写的

如果用Lua取代SQL作为DBGate服务器的查询语言会不会更加的方便?

首先,DBGate和外界用Lua语句(略作增强)作为查询的标准语言. 包括以下几种方式:(略去DB选择等细节)

1.模式匹配查询

查询: {sid=12345,q={name='linker',"age"},limit=1}

返回:{sid=12345,r={ {name='linker',age=24} } }

这里的 age 相当于select 中选择出的列.

2.容器保存

请求: {sid=12345, s={ {name='harry',age=25} ,{name='lych',age=25} } }

返回: {sid=12345, r=2}

3.模式匹配修改

请求: {sid=12345, m={ {name='linker',age+=1} },limit=1 }

返回: {sid=12345, r={ {name='linker',age=24} } }

 ...



下面有一个回复


以下为严重主观色彩的个人意见:

SQL是针对RDB而发明的DSL,与RDB本身具有良好的融合性,而程序员对SQL的抱怨,本质上也来 自RDB模型与传统编程模型之间的“阻抗失配”,而不是SQL这种语言的错。想改善这种阻抗失配,也必须设计一个中间层在两者之间进行思想上的转换,这也 是ORM的起源。如果不能转换思想,只是转换了外观,则不仅没有意义,还不见得简化了难度,因为这无非是把阻抗失配转移到了另一个地方,而不是消除了。在 SQL产生之前,对RDB的访问就是通过各种语言的API来完成的,这造成了编程语言之间和RDB产品之间的两方面的不兼容,造成了诸多困难。
个人是DSL/LOP的信仰者,所以谨慎地不建议用一个轻易的方案来取代经过事实考验的、具备LOP先进性的SQL,供参考

 

我觉得对我个人很受用 就转了

Lua
举报
ddatsh
发帖于7年前 1回/507阅
顶部