V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
Lucups
V2EX  ›  MySQL

设计数据库的时候,用不用工具、用什么工具呢?

  •  
  •   Lucups · 2015-06-16 13:12:19 +08:00 · 4290 次点击
    这是一个创建于 3181 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前受公司架构师影响,使用 PowerDesigner,后来自己又尝试了 MySQL WorkBench。
    现在我发现其实还是手写 SQL 最方便。
    另外就是,遇到版本不兼容问题时,手写SQL能更快定位错误,不知各位怎么看?

    32 条回复    2015-06-28 22:21:39 +08:00
    feikeq
        1
    feikeq  
       2015-06-16 13:16:21 +08:00
    记事本
    sun1991
        2
    sun1991  
       2015-06-16 13:17:17 +08:00
    纸, 笔.
    TangMonk
        3
    TangMonk  
       2015-06-16 13:18:54 +08:00
    将就问下,用过rails的人还会可以设计数据库吗?
    TangMonk
        4
    TangMonk  
       2015-06-16 13:19:13 +08:00
    可以 = 刻意
    fangjinmin
        5
    fangjinmin  
       2015-06-16 13:22:39 +08:00
    Eclipse + ERMaster
    Septembers
        6
    Septembers  
       2015-06-16 13:22:49 +08:00 via Android   ❤️ 1
    设计数据库表结构的时候
    不要具体数据库
    不要具体字段类型
    不要马上开始制作UML
    先行构思一个基础模型,画草图,
    基本想法 基本稳定 再建UML

    (如果一开始就建UML,确定数据库,确定字段类型
    (在一次次调整数据库的过程中会让你 力不从心 从而 丧失战斗力
    Lucups
        7
    Lucups  
    OP
       2015-06-16 13:52:01 +08:00
    @sun1991 纸笔效率太低,修修改改最后没法看,而且不能保存每次的更新记录。尤其是已经进入开发过程。
    holystrike
        8
    holystrike  
       2015-06-16 13:55:29 +08:00   ❤️ 1
    MySQL WorkBench
    方便复查、对外沟通、文档生成、数据迁移等等
    Septembers
        9
    Septembers  
       2015-06-16 13:58:55 +08:00 via Android
    @Lucups
    数据库架构设计 是做可行性方案时候要考虑的
    都已经进入开发阶段了 这时候更新数据库架构很做死(除非贵司有足够能力在 像rust那样 发现更好的实现能推翻重做
    vietor
        10
    vietor  
       2015-06-16 13:59:39 +08:00
    带注释的SQL
    Lucups
        11
    Lucups  
    OP
       2015-06-16 13:59:56 +08:00
    @holystrike 我后来选择 MySQL WorkBench 的主要原因就是 跨平台+免费。
    PowerDesinger 要钱还只能跑在 Windows 上。
    Lucups
        12
    Lucups  
    OP
       2015-06-16 14:01:44 +08:00
    @TangMonk 你们设计 Entity 吧
    Lucups
        13
    Lucups  
    OP
       2015-06-16 14:03:32 +08:00
    @Septembers 开发阶段需求调整需要调整一下或者添加某些字段也是正常的需求啊。
    Septembers
        14
    Septembers  
       2015-06-16 14:04:53 +08:00 via Android
    @Lucups 我特指 架构 不是 单表
    crazyxin1988
        15
    crazyxin1988  
       2015-06-16 14:12:04 +08:00
    PowerDesinger
    设计完,直接生成sql语句
    mengzhuo
        16
    mengzhuo  
       2015-06-16 14:24:47 +08:00
    一般ORM

    WorkBench 可以直接实体图出表结构,或者表结构变实体图
    jedrek
        17
    jedrek  
       2015-06-16 15:20:42 +08:00   ❤️ 1
    MySQL WorkBench
    开发阶段,免不了随时调整数据库设计,自己查看和跟人沟通,一个直观的表图极大提高效率。
    一图胜千言。
    加上免费、跨平台,用起来还挺顺手,找不到不使用的理由
    snailsir
        18
    snailsir  
       2015-06-16 15:29:03 +08:00
    记事本 +1
    hildert
        19
    hildert  
       2015-06-16 16:49:35 +08:00
    MySQL WorkBench +1
    evlos
        20
    evlos  
       2015-06-16 17:01:42 +08:00 via iPhone
    我一般用 mindmap
    leassy
        21
    leassy  
       2015-06-16 17:05:35 +08:00
    我直接按需求建表,嘿嘿
    lj6684
        22
    lj6684  
       2015-06-16 17:13:28 +08:00
    Navicat
    Lucups
        23
    Lucups  
    OP
       2015-06-16 17:53:09 +08:00
    @evlos 不能生成SQL吧
    evlos
        24
    evlos  
       2015-06-16 17:58:16 +08:00 via iPhone
    @Lucups 不能的,用这个设计完数据库我就直接写 ORM 了
    yakczh
        25
    yakczh  
       2015-06-16 18:49:20 +08:00
    rake
    jianghu52
        26
    jianghu52  
       2015-06-17 09:13:23 +08:00
    我这么low的人只会用纸和笔。另外基本上所有的数据库设计真正有用的,都是跟人讨论出来的。自己设计的时候,怎么想都不对。
    sadaharu09
        27
    sadaharu09  
       2015-06-17 09:19:08 +08:00
    Navicat,我很懒,就用这个。好贵啊。
    sacuba
        28
    sacuba  
       2015-06-17 13:26:53 +08:00
    看了下上面 没有人用erwin的么 蛮好用的啊
    ruchee
        29
    ruchee  
       2015-06-17 18:15:05 +08:00   ❤️ 1
    1、先开个 txt 写清整个项目的表结构划分
    2、用框架生成各个表的 migrations 文件,比如 Laravel、Symfony、Rails 都有提供命令行
    3、照着第一步的数据表蓝图填充好具体的字段信息,每个字段语句后面用注释写明该字段的意义、用途
    4、执行框架提供的数据迁移命令,生成真正的数据表

    so,各个 migrations 文件其实就是数据库的设计文档了,方便自己和队友查看
    ruchee
        30
    ruchee  
       2015-06-17 18:21:42 +08:00
    @ruchee 第一步写文本设计稿时需要点时间,一般是一天内全部写完,然后接下来的几天陆续补充或修改,直至最后觉得考虑全面了为止
    zonghua
        31
    zonghua  
       2015-06-17 18:45:34 +08:00 via iPhone
    @vietor 怎么练习啊,我写sql经常拼错。
    realpg
        32
    realpg  
       2015-06-28 22:21:39 +08:00
    一般来说我都是按MYSQL需求直接建表了 直接PHPMYADMIN操作了

    而且因为折腾MySQL多年,对查询优化什么的也略有研究,基本建表时就考虑到了所有可能用这个表的查询同时索引预设到位,没什么问题,基本后期连索引都不用调,最多的是为了优化查询效率,关联表之间做冗余列的调整

    自己设计系统架构自己开发多了,就这习惯了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5405 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 07:08 · PVG 15:08 · LAX 23:08 · JFK 02:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.