V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xurh
V2EX  ›  程序员

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

  •  1
     
  •   xurh · 2023-10-17 10:53:34 +08:00 · 2207 次点击
    这是一个创建于 433 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    7 条回复    2023-10-17 20:33:06 +08:00
    Yoda07
        1
    Yoda07  
       2023-10-17 11:06:15 +08:00
    前司在经历几次大版本迭代以及数据库从 Oracle->MSSQL->PostgreSql 的变更之后已经彻底将业务逻辑和数据库(以及任何中间件)解耦了
    pengtdyd
        2
    pengtdyd  
       2023-10-17 11:08:39 +08:00
    Supabase 是为了 mvp 而生的,不适合大规模的业务架构。
    zyx199199
        3
    zyx199199  
       2023-10-17 11:15:10 +08:00
    我的个人项目也在用 supabase 。

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

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

    reddit 上也有一些外国网友表示他也是这么做的。
    Greendays
        4
    Greendays  
       2023-10-17 11:16:24 +08:00
    交给 DB 去做,是不是得有专门开发 DB 的工程师啊?我在工作中还没见过这个职位呢。。。
    Chad0000
        5
    Chad0000  
       2023-10-17 11:19:17 +08:00
    你要是说屎山项目,确实是。现在的项目不可能再把逻辑放 DB 层了。
    gam2046
        6
    gam2046  
       2023-10-17 11:24:32 +08:00
    按网友们的说法,上古时代,是经常这么做的。但是目前因为云服务的普及,中间件得以弹性伸缩,而数据库相比较伸缩难度较大,因此不在数据库中涉及业务逻辑。
    laozhoubuluo
        7
    laozhoubuluo  
       2023-10-17 20:33:06 +08:00
    1. 大多数系统除了 I/O 就是 DB 有瓶颈,因此尽量减轻 DB 负载是必要的。
    2. 存储过程的开发维护成本远高于代码,所以能代码解决的肯定不做存储过程。祖传代码已经很难懂了,如果祖传代码套着祖传存储过程怕是以后这个点要变更得先开发和 DBA 结对编程梳理出来逻辑完了再开技术团队会议确定逻辑是否正确以及针对新需求的修改方案吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1185 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:15 · PVG 02:15 · LAX 10:15 · JFK 13:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.