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

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

  •  
  •   289396212 · 2024-05-28 15:33:56 +08:00 · 3635 次点击
    这是一个创建于 375 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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
    居然没有看到用 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   ·   实用小工具   ·   1038 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 23:09 · PVG 07:09 · LAX 16:09 · JFK 19:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.