国外是不是倾向于小项目的重复逻辑交由 DB 层去处理

206 天前
 xurh

最近看 Supabase 文档,发现后端的权限管理都是交给 PostgreSQL 去做,一些函数封装也是由数据库去处理

按照我在国内的工作经验,国内更倾向于 db 只做读写,把判断做在业务层,减少 db 工作量,同时业务层也好进行扩展。

1916 次点击
所在节点    程序员
7 条回复
Yoda07
206 天前
前司在经历几次大版本迭代以及数据库从 Oracle->MSSQL->PostgreSql 的变更之后已经彻底将业务逻辑和数据库(以及任何中间件)解耦了
pengtdyd
206 天前
Supabase 是为了 mvp 而生的,不适合大规模的业务架构。
zyx199199
206 天前
我的个人项目也在用 supabase 。

我是把用户和注册功能在前端直接调用 supabase 的 js 库来实现,不经过我的服务器,其他所有请求都要经过我的后端服务器转发,业务处理也都放在服务器

我这么做是因为我不熟悉用户注册登录这些,所以直接交给 supabase 接管。我也不熟悉 pg 库的内置函数功能,感觉维护和测试都不太方便。而且我个人比较喜欢使用 ORM ,所以我的 python 服务器是使用 ORM 直连 supabase 的 pg 数据库,没有使用 suapbase 的库来连接。

reddit 上也有一些外国网友表示他也是这么做的。
Greendays
206 天前
交给 DB 去做,是不是得有专门开发 DB 的工程师啊?我在工作中还没见过这个职位呢。。。
Chad0000
206 天前
你要是说屎山项目,确实是。现在的项目不可能再把逻辑放 DB 层了。
gam2046
206 天前
按网友们的说法,上古时代,是经常这么做的。但是目前因为云服务的普及,中间件得以弹性伸缩,而数据库相比较伸缩难度较大,因此不在数据库中涉及业务逻辑。
laozhoubuluo
206 天前
1. 大多数系统除了 I/O 就是 DB 有瓶颈,因此尽量减轻 DB 负载是必要的。
2. 存储过程的开发维护成本远高于代码,所以能代码解决的肯定不做存储过程。祖传代码已经很难懂了,如果祖传代码套着祖传存储过程怕是以后这个点要变更得先开发和 DBA 结对编程梳理出来逻辑完了再开技术团队会议确定逻辑是否正确以及针对新需求的修改方案吧。

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

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

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

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

© 2021 V2EX