有没有一种通过 RPC 操作关系型数据库的方式?

2023-01-18 21:27:38 +08:00
 Aloento
叠甲:本人初学数据库,编程小白,提问纯属奇思妙想

据我不太多的知识所知,我们传递 SQL 语句给数据库后数据库都是需要先解析后再调用内部函数进行操作

那有没有一种可能,就是像 NoSQL 或者 REST 一样直接调用暴露出来的 endpoint 来实现以编程而不是写 SQL 的方式操作数据库呢?
2147 次点击
所在节点    奇思妙想
10 条回复
zagfai
2023-01-18 21:46:33 +08:00
多得很
luanjia
2023-01-18 21:49:28 +08:00
OData ?不知道是不是符合你的想法
ch2
2023-01-18 21:51:31 +08:00
mongodb 的 aggregate ,就不需要 sql ,直接上关系运算
zhy0216
2023-01-18 22:35:19 +08:00
https://postgrest.org/en/stable/
虽然不是 rpc 但意思差不多了
est
2023-01-18 23:10:48 +08:00
> 那有没有一种可能,就是像 NoSQL 或者 REST 一样直接调用暴露出来的 endpoint 来实现以编程而不是写 SQL 的方式操作数据库呢?


首先想到的是 mysql 的 handlersocket ,很早就支持了

https://dev.mysql.com/doc/refman/5.6/en/innodb-memcached-intro.html

The InnoDB memcached plugin implements memcached as a MySQL plugin daemon that accesses the InnoDB storage engine directly, bypassing the MySQL SQL layer.

其次 LZ 这想法其实回归到远点。。。老人们可能记得 B/S 架构和 C/S 架构。。。

C/S 架构核心就是把物理数据按照账号权限切分成多个 view ,然后 view 通过一些叫做 trigger 的 hook 进行前置、后置处理吐给客户端。客户端直接通过分配的账号登录 db ,然后进行对部分数据的增删改查。

rdbms 就是一个 serverless 的低代码平台。你只关心把一些 lambda 在一个界面提交给系统,不用关心他在哪里执行;
sql 语言就是低代码语言;
JOIN 就是 graphql ;
lower
2023-01-18 23:16:47 +08:00
用过 es 的那种 json 方式的查询参数写法,太难用了;
不如 sql 写起来直观灵活,假如关系型数据库有这种,我反正是不会用……
Aloento
2023-01-18 23:42:01 +08:00
@zhy0216 这个好耶,我正好也用 PG

@est handlersocket 确实是我想要的
Aloento
2023-01-19 00:17:19 +08:00
netabare
2023-01-22 00:04:58 +08:00
我也在想这种「一捅到底」的 serverless 的设计,不过感觉最大的问题是,怎么保证数据类型的一致性和准确性呢。

只在客户端前端进行数据检验和匹配吗,对于很多需要 auth 和保持 session 的场合来说这种思路应该无法满足安全性的要求。
h0099
2023-01-22 01:14:37 +08:00
#9 @netabare
> 保证数据类型的一致性和准确性

楼上#5 早已道明
> 多个 view ,然后 view 通过一些叫做 trigger 的 hook 进行前置、后置处理吐给客户端

> 客户端前端进行数据检验和匹配

建议立即开始写阁下最痛恨的几百上千行的 PL/SQL T-SQL 存储结构

> rdbms 就是一个 serverless 的低代码平台。你只关心把一些 lambda 在一个界面提交给系统,不用关心他在哪里执行;
> sql 语言就是低代码语言;
> JOIN 就是 graphql

这下现代中台娱乐圈壬上壬们又梦回他们最痛恨的 80/90s COBOL 了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/909780

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX