lhw45202
V2EX  ›  问与答

求推荐可视化数据库建模软件?

  •  
  •   lhw45202 · Feb 24, 2017 · 3477 views
    This topic created in 3391 days ago, the information mentioned may be changed or developed.
    请教一下大家都用什么软件进行数据库 schema 建模,主要面向 MySQL 数据库?试用了一下 Navicat ,可以进行 MySQL 建模,只是建立列名时每次都要选择一堆选项,并不实用。

    个人的需求大致如下:

    1. 建模时最好仅需要填写字段名、类型、注释 /说明这三项就可以,同时在可视化 ER 图时也需要显示这三项, Navicat 只能显示前两项,因为字段名开始使用英文翻译时经常找不到准确的翻译,后期还需要根据注释 /说明再精确翻译;
    2. 最好是类似 PlantUML 画类图这种使用纯代码格式表示建模关系的
    3. 可视化时能够显示数据表间外键关系
    6 replies    2019-07-30 13:14:48 +08:00
    mcfog
        1
    mcfog  
       Feb 24, 2017 via Android
    所以你需要的是写的时候纯文本,写完以后可视化?

    直接写个 yml ,随便搞个什么脚本语言翻译成 SQL create ,导进数据库再反过来拿软件看不就行了, workbench 或 navicat 什么应该都行
    leopku
        2
    leopku  
       Feb 24, 2017
    官方 MySQL Workbench 支持 Win 、 Mac , Linux 下没用过,不清楚

    不过我还是喜欢先 PlantUML
    lhw45202
        3
    lhw45202  
    OP
       Feb 24, 2017
    @mcfog 其实我想要的纯代码格式表征数据库 schema 格式大致如下:

    ```
    @startdbschema

    table employee {职员表} {
    id : bigint pk {主键}
    name : varchar(255) {姓名}
    phone : varchar(64) {联系方式}
    address : varchar(255) { 住址 }
    }

    table salary {工资表} {
    id : bigint pk {主键}
    employee_id : bigint {外键职员 id}
    salary : int {工资}
    }

    salary.employee_id --> employee.id

    @enddbschema
    ```

    自己做一个这样的工具还不知道怎么实现,不知你有什么想法?
    lhw45202
        4
    lhw45202  
    OP
       Feb 24, 2017
    @leopku 你用过 MySQL Workbench 吗?在显示 ER 图时,能否显示“注释 /说明”这一项,也就是原问题的第 1 条需求?
    mcfog
        5
    mcfog  
       Feb 24, 2017
    @lhw45202 yml 很容易啊,比这样子 http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/yaml-mapping.html#example

    不如说直接用 doctrine 的工具链可能就能实现了
    xaplux
        6
    xaplux  
       Jul 30, 2019
    plantuml
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1052 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 18:05 · PVG 02:05 · LAX 11:05 · JFK 14:05
    ♥ Do have faith in what you're doing.