大家在工作中创建服务端项目的数据库表都是怎么设计怎么建的?手写 SQL,用 GUI 工具还是 ORM 框架? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
289396212
V2EX    程序员

大家在工作中创建服务端项目的数据库表都是怎么设计怎么建的?手写 SQL,用 GUI 工具还是 ORM 框架?

  •  
  •   289396212 2024-05-28 15:33:56 +08:00 3950 次点击
    这是一个创建于 501 天前的主题,其中的信息可能已经有所发展或是发生改变。
    37 条回复    2024-05-30 09:13:10 +08:00
    wizzer
        1
    wizzer  
       2024-05-28 15:36:49 +08:00
    ORM 框架 nutz 里的 dao
    R4rvZ6agNVWr56V0
        2
    R4rvZ6agNVWr56V0  
       2024-05-28 15:38:48 +08:00   1
    先写数据字典文档,然后用 GUI 工具。
    linauror
        3
    linauror  
       2024-05-28 15:41:09 +08:00
    GUI 工具,边想边建
    sketcherly
        4
    sketcherly  
       2024-05-28 15:43:04 +08:00
    GUI
    289396212
        5
    289396212  
    OP
       2024-05-28 15:56:23 +08:00
    @linauror 都用的啥 GUI 工具呢?
    Ayanokouji
        6
    Ayanokouji  
       2024-05-28 17:04:01 +08:00
    建表手写 sql ,gui 太磨叽
    dandankele
        7
    dandankele  
       2024-05-28 17:10:06 +08:00
    话说你们先写业务代码还是先设计数据库啊?我以前都是先设计数据库表,然后再写业务代码。。但现在觉得也可以先写业务代码,再设计数据库表。。。
    前者的话,我是直接用 navicat 设计表的,然后再用 orm 工具生成 PO 。。后者的话。。我还没尝试过。但感觉后者搞不了。。因为我写的是业务实体,并不一定代表了数据库表的结构
    289396212
        8
    289396212  
    OP
       2024-05-28 17:12:16 +08:00
    @Ayanokouji GUI 不是可以看到各个实体之间的关系,更加清晰,避免问题吗?
    hehe5120
        9
    hehe5120  
       2024-05-28 17:14:45 +08:00
    手写,或者复制类似表的 SQL 过来修改一下。
    esee
        10
    esee  
       2024-05-28 17:18:54 +08:00
    navicat 呗,一边写一边改
    startisan
        11
    startisan  
       2024-05-28 17:21:05 +08:00
    先写文档,然后评审,最后手写 SQL (毕竟代码要归档)。
    Pantheoon
        12
    Pantheoon  
       2024-05-28 17:25:48 +08:00
    用的最好的工具是 navicat,可惜,没有 license,现在全部手写,没有找到称手的工具
    wxw752
        13
    wxw752  
       2024-05-28 17:27:34 +08:00
    我是把需求和之前建表的 sql 发给 gpt ,让它帮我写成 sql ,这么干起码已经半年了。。。
    highFreqSurfer
        14
    highFreqSurfer  
       2024-05-28 17:29:17 +08:00
    直接写 model, 然后用 orm 开自动迁移
    coala
        15
    coala  
       2024-05-28 17:29:34 +08:00
    额,prompt + gpt + PDManer + 代码生成器.. 我好懒
    ChoateYao
        16
    ChoateYao  
       2024-05-28 17:48:21 +08:00
    用 Excel ,然后转换成 Class ,最后自动生成 SQL
    Ayanokouji
        17
    Ayanokouji  
       2024-05-28 18:04:04 +08:00
    @289396212 现在又不使用外键,gui 也没啥吧,写 sql 前都是有设计文档的,最次也有个脑图。
    zyxbcde
        18
    zyxbcde  
       2024-05-28 18:22:35 +08:00 via iPhone
    先写文档,然后通过文档生成建表 sql ,然后根据表结构生成代码。
    sampeng
        19
    sampeng  
       2024-05-28 18:44:53 +08:00
    以前是会喜欢用 dao 自动生成,后来发现。。。。。。。。。。。。。。。。。。。。。。。
    还是 gui 生成了 sql 扔到 mirgrate 里面香
    ashuai
        20
    ashuai  
       2024-05-28 18:46:59 +08:00
    用 markdown 写数据字典,定稿了用脚本把数据字典跑成 sql 脚本。

    你这一问,我有个想法,打算写个 obsidian 插件,自动在数据字典表格下面挂 SQL
    nothingistrue
        21
    nothingistrue  
       2024-05-28 18:55:02 +08:00
    第一版可能 GUI 或者 ORM ,但后面 99%都要手写。DB 跟 代码的正反向工程,就是一个看起来很美,但因前台太苛刻而难以用起来的东西。光一个「除了 DBA 和做映射的,谁都不能动数据库」这个小前提,实现难度就很大这意味着造测试数据、查询优化这种原本半个小时的活,往往要好多天(倒不是实际要搞那么多天,而是要等流程)。
    wuyiccc
        22
    wuyiccc  
       2024-05-28 22:21:30 +08:00
    直接写 sql ,感觉 sql 简单明了一些
    xguanren
        23
    xguanren  
       2024-05-28 23:00:01 +08:00
    我是要么用 navicat 要么 phpmyadmin 反正就是建表用 然后 sql 导出看一眼 再喂给 gpt 看看有没有什么优化的地方.
    然后 gorm 的那个 gen 工具生成
    单表的话 https://old.printlove.cn/tools/sql2gorm 用这个在线转换下结构体
    leyfung
        24
    leyfung  
       2024-05-28 23:03:00 +08:00
    BeiChuanAlex
        25
    BeiChuanAlex  
       2024-05-28 23:56:57 +08:00   1
    居然没有看到用 PowerDesigner 的。。。。。。

    边建表边写代码,一边写代码一边改 schma 也许才是真实写照吧。
    james122333
        26
    james122333  
       2024-05-29 00:24:45 +08:00 via Android
    手写 sql 搭配 vim 也可以 虽然插件不怎么样 但还是可以运作 vim-dadbod vim-dadbod-ui
    储存请求就会送出
    https://github.com/kristijanhusak/vim-dadbod-ui
    james122333
        27
    james122333  
       2024-05-29 00:36:33 +08:00 via Android
    vim 从不同 buffer 补全内容还是挺爽的
    lujiaxing
        28
    lujiaxing  
       2024-05-29 00:45:55 +08:00
    EFCore Code First
    dayeye2006199
        29
    dayeye2006199  
       2024-05-29 03:34:17 +08:00 via Android   1
    ORM
    从不手写 sql
    levelworm"
        30
    levelworm  
       2024-05-29 03:37:57 +08:00
    GUI 生成。大公司什么东西都喜欢自己搞一套。
    xuanbg
        31
    xuanbg  
       2024-05-29 04:44:55 +08:00
    手写最方便也最快,CV 大法速度飞起。GUI 用起来太麻烦
    endoffight
        32
    endoffight  
       2024-05-29 08:31:47 +08:00 via Android
    gorm + migration
    dododada
        33
    dododada  
       2024-05-29 09:05:57 +08:00
    问个问题,一般都是手写 sql 的情况下,线上 sql 要审核,orm 顶多用来做做连接,各种操作都是纯 sql ,除了 DBA 执行 update ,代码层面和数据库有什么方便的同步手段么
    CoffeeY
        34
    CoffeeY  
       2024-05-29 09:56:38 +08:00
    基础遵循三大范式、建模输出 E-R 图、评审无异用生成的 sql 或者 GUI
    wxyrrcj
        35
    wxyrrcj  
       2024-05-29 11:11:20 +08:00
    datagrip 写完 sql 复制到 idea
    unco020511
        36
    unco020511  
       2024-05-29 12:00:56 +08:00
    GUI
    duzhuo
        37
    duzhuo  
       2024-05-30 09:13:10 +08:00
    首先排除第一个
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1033 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 18:25 PVG 02:25 LAX 11:25 JFK 14:25
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86