尧图精选

PowerDesigner逆向工程实战:从数据库到PDM模型全流程解析

🕒 发布时间:2026/10/1 19:02:08 📁 来源:尧图网络
1. PowerDesigner逆向工程到底解决什么问题先聊一个真实场景接手一套老系统数据库有上百张表字段命名乱七八糟外键关系若隐若现也没有一份像样的设计文档。你想梳理业务逻辑、画ER图、做二次开发光靠肉眼去翻建表语句大概率要看吐。PowerDesigner的逆向工程就是干这个用的。它可以把已有数据库结构反向读取出来生成完整的物理数据模型PDM再转成概念数据模型CDM或者直接导出成文档、HTML、XML。换句话说它能把“躺在数据库里的结构”变成“看得见、改得动、能汇报”的模型文件。很多人误以为逆向工程只是“点几下按钮生成一张图”实际上它能做的事远不止这些梳理表间关系外键、索引、主键、约束全部可视化呈现老系统里那些隐晦的关联逻辑一眼看穿。生成标准化文档表结构、字段注释、数据类型、长度、是否为空全部整理成规整的表格直接用于项目交接或评审。辅助重构设计拿到PDM后可以直接在PowerDesigner里调整表结构再正向生成新的建表脚本完成数据库结构的迭代。对比多个版本通过逆向生成的模型文件可以和之前保存的设计进行比对快速找出结构差异。所以这篇内容不是教你“怎么点按钮”而是把整个逆向流程拆开讲透从连接配置、选择范围、生成模型到常见报错和坑再到如何把逆向结果真正用起来。适合正在接手老项目、需要梳理数据库结构或者想系统学习PowerDesigner建模的读者。我用的版本是PowerDesigner 16.5虽然版本不算新但逆向数据库这个功能非常成熟后面讲到的菜单路径和参数配置都是基于这个版本。如果你用的是15.x或16.0界面基本一致直接照做即可。2. 环境准备ODBC数据源与连接配置2.1 先搞定ODBC否则连不上数据库PowerDesigner本身不直接连数据库它是通过ODBC驱动来读取数据库元数据的。所以第一步不是打开PowerDesigner而是先把ODBC数据源配置好。以Windows系统、MySQL数据库为例完整步骤是这样的安装MySQL的ODBC驱动。推荐用MySQL ODBC 5.3 Unicode Driver或者MySQL ODBC 8.0 Unicode Driver注意区分32位和64位——必须和PowerDesigner的位数一致。PowerDesigner 16.5常见的是32位所以即使你的系统是64位也要装32位的ODBC驱动否则在ODBC管理器里根本看不到这个驱动。打开ODBC数据源管理器。在Windows搜索栏输入ODBC选择“ODBC数据源管理器”32位。如果系统是64位默认弹出的是64位管理器你需要到C:\Windows\SysWOW64\odbcad32.exe手动打开32位管理器。新建系统DSN。点击“添加”选择刚才安装的MySQL ODBC驱动比如MySQL ODBC 5.3 Unicode Driver填写数据源名称比如mysql_test、服务器地址、端口、用户名、密码然后点击“测试”确认能连通。提示很多人在这一步卡住报错“无法加载驱动”或“找不到数据源”十有八九是32位/64位驱动不匹配。记住一个原则PowerDesigner是什么位数ODBC驱动就用什么位数。64位的PowerDesigner 16.5较罕见但如果你用的确实是64位驱动的位数也要跟着换。如果你要逆向的是Oracle数据库步骤类似只是驱动换成Oracle ODBC Driver或者Oracle in OraClient。SQL Server则用ODBC Driver 17 for SQL Server。原理都一样PowerDesigner通过ODBC获取数据库的系统表信息从而重建模型。2.2 PowerDesigner内部配置选择DBMS类型ODBC配置好后打开PowerDesigner依次执行菜单Database-Configure Connections这里可以管理所有已配置的ODBC数据源相当于一个快捷入口。在逆向之前PowerDesigner需要知道目标数据库的DBMS类型。新建物理数据模型时选择对应的数据库类型比如MySQL 5.0、Oracle 11g、SQL Server 2008等。这个选择会影响生成模型的语法规则、数据类型映射选错了可能导致字段类型解析异常。在实际操作中我建议在逆向之前先新建一个空白的PDMDBMS类型选择正确的数据库版本然后再通过Database-Reverse Engineer Database来做逆向。不要直接选择“从数据库反向生成”入口因为那个流程会混入一些额外的交互步骤不如先建PDM再逆向来得可控。2.3 连接测试的经验之谈配置好ODBC后在PowerDesigner里点击Database-Connect会出现连接窗口选择你创建的DSN输入用户名密码点击Connect。这里有几个常见的坑连接时提示“Cannot load DLL”ODBC驱动安装不完整或者位数不匹配。重装对应位数的驱动即可。连接MySQL时报“Access denied for user”数据库账号权限不足。逆向工程需要读取information_schema的权限建议用一个有SELECT权限的账号不要用root最少授权的原则同样适用于工具连接。连接很慢或者超时如果数据库在远程需要检查防火墙、网络延迟。可以适当调大ODBC连接超时时间但这不是关键问题毕竟逆向读取的是系统表数据量不会太大。连接成功后PowerDesigner会读取数据库列表和表列表你可以看到所有库的树形结构到这一步逆向的前置工作就算完成了。3. 逆向工程实操从数据库到PDM的全过程3.1 选择逆向对象库、表、视图确认连接成功后执行Database-Reverse Engineer Database。此时会弹出逆向工程向导第一个界面让你选择数据源和连接方式。这里要注意一个细节如果你在2.2节已经新建了PDM并选择了DBMS类型向导会默认使用当前模型的数据源类型如果是空白模型需要在这里重新选择连接类型。点击确定后会进入一个多步骤向导Select Tables and Views勾选要逆向的表和视图。默认是全选但我强烈建议先看一下表的数量。如果整个库有几百张表全选会导致生成模型非常庞大POWERDESIGNER可能需要几十分钟才能处理完。建议按业务模块分批逆向比如先逆向订单相关的表再逆向用户相关的表。Select the items to reverse这里选择要逆向的对象类型包括表、视图、索引、外键、触发器、存储过程等。默认是全部勾选但触发器、存储过程这类对象在逆向时容易引发脚本解析错误。如果你只关心表结构和关系建议只勾选Table、View、Index、Key、Reference把触发器、存储过程、函数都去掉避免不必要的报错。Options这一页是逆向选项的核心常见选项包括Trim names去掉表名和字段名两端的空格Check constraints读取检查约束Convert shortname将保留字自动加引号Use original names if possible尽量使用原始名称而不是格式化后的名称Generate merge on FK columns外键列是否自动合并到子表我没有找到一份统一的官方文档对每个选项做详细解释所以简单说一下最常用的几个Trim names建议勾选因为老系统的表名经常有不规范的空格不Trim的话后面生成代码时会非常难受。Generate merge on FK columns不建议勾选勾上会把外键列直接合并到子表的引用列里虽然看起来图更整齐但会改变字段结构后续模型和实际库对不上会出大问题。最后一个界面会让你选择是否生成图形Graphic建议勾选“Yes, generate graphics”这样逆向完成后会自动生成ER图。如果不勾你就要手动在工作区里把表和关系一张张拖出来摆开很浪费时间。点击完成PowerDesigner开始逐表读取元数据进度条会显示当前处理到哪个表。完成之后你会得到一个PDM模型文件里面已经包含了表结构、字段、键、索引和外键关系。3.2 逆向结果的初始检查刚逆向完的模型不要直接当作最终结果有几个步骤我每次都会做检查表数量是否和数据库一致。在模型里展开Tables节点数一遍。如果少表通常是因为逆向时没有勾选或者该表是系统表/临时表被PowerDesigner自动过滤了。检查主键是否正确。老系统中表的主键可能不是按规范设置的比如没有主键、主键字段选错导致逆向出的模型和实际业务不符。打开某张表在Keys里查看主键字段必要时手动修改。检查外键关系。这是最容易出问题的地方。PowerDesigner会根据数据库里的外键约束来生成Reference关系但有些老库的外键是通过应用层控制的数据库层面并没有真正建立外键此时逆向出的模型就是一堆孤立的表没有关系线。遇到这种情况别急着骂工具先确认一下是不是数据库本身就没做外键约束。检查视图。视图逆向后会生成在Views节点下但视图的内部定义SELECT语句有时会解析出错尤其是在复杂视图、嵌套子查询、特殊函数的场景下。如果只是需要表结构可以暂时忽略视图报错。3.3 批量调整名称、注释、数据类型映射逆向出来的模型通常有个痛点表名和字段名是英文没有中文注释。在老系统中表名可能是t_user_info字段名是user_name、user_pass、create_time你完全看不出来这个字段是干嘛的更别说flag这种含义不明的字段了。有一种做法是直接从数据库的COMMENT里读取注释。如果你的表结构和字段都写了注释PowerDesigner会自动把它们映射到模型的Name属性或Comment属性中。但现实中很多老库根本没有写注释这个时候你可以用PowerDesigner的Tools-Execute Commands-Edit/Run Script通过VBScript脚本批量给模型里的表、字段补充注释。下面是一个简单的VBScript示例可以把字段名转换成中文说明这里只是演示逻辑具体映射规则需要你自己根据业务去定Dim mdl Set mdl ActiveModel If Not mdl Is Nothing Then Dim tbl, col For Each tbl In mdl.Tables For Each col In tbl.Columns Select Case col.Name Case user_name col.Comment 用户姓名 Case user_pass col.Comment 用户密码 Case create_time col.Comment 创建时间 Case flag col.Comment 标志位 End Select Next Next End If脚本写完直接运行PowerDesigner会遍历所有表和字段把Comment属性填上。这样后续生成文档时字段说明就一目了然。另一个需要关注的是数据类型映射。不同数据库之间的类型体系不一样比如MySQL的int(11)在PowerDesigner里可能显示为INTEGERvarchar(255)会显示为VARCHAR(255)这些基本没问题。但如果是Oracle的NUMBER(10,2)PowerDesigner会显示为NUMERIC(10,2)看起来差不多实际在生成目标库脚本时要注意转换。如果你逆向的目的是把MySQL的模型转成其他数据库比如从MySQL逆向再正向生成SQL Server脚本你需要特别检查数据类型映射表。PowerDesigner在Database-Generate Database时会根据当前模型的DBMS类型生成对应的SQL如果DBMS类型选成了MySQL而你想生成Oracle脚本那就得先在Database-Change Current DBMS中切换DBMS类型切换后PowerDesigner会自动尝试转换数据类型但总会有一些类型无法完美匹配需要手动调整。3.4 用“表结构清单”验证逆向完整性逆向完成后除了图形化的ER图我还会让PowerDesigner生成一份表结构清单用来对照数据库实际的系统表数据验证逆向的完整性。具体操作在PDM里右击任意空白处选择List of相关的菜单项取决于版本或者在Model菜单中选择List of Tables、List of ColumnsPowerDesigner会打开一个列表窗口里面可以把表名、字段名、数据类型、长度、注释等信息导成表格。我习惯把这张清单导出为Excel或CSV然后写几条SQL从数据库的信息模式里把同样字段拉出来两边做个diff。比如SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, IS_NULLABLE, COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA your_database ORDER BY TABLE_NAME, ORDINAL_POSITION;对比的目的不是找茬而是确认PowerDesigner没有漏掉某些字段也没有因为数据库版本兼容问题读错类型。这个步骤在有几百张表的大库里尤其有价值省得模型用了半个月才发现某张表少了一列关键字段。4. 踩坑实录逆向过程中的高频报错与处理4.1 中文乱码编码问题必须优先解决逆向一台MySQL数据库时我遇到最典型的坑就是中文乱码。表名、字段名、注释全都变成了???或者一堆乱码字符。原因有两层ODBC连接没有指定字符集。MySQL ODBC驱动在连接时需要在连接串里加Charsetutf8或utf8mb4否则默认可能使用latin1导致中文字符读取时直接乱码。PowerDesigner本身对中文的支持有问题。PowerDesigner的很多配置界面默认使用ANSI编码如果模型文件本身不是UTF-8编码即使数据源是UTF-8也可能在写入模型时发生转换错误。解决思路分两步第一步在ODBC配置时在“连接参数”或“高级选项”里显式指定字符集。MySQL ODBC 5.3在DSN配置界面有一个Character Set选项把它设为utf8或utf8mb4。如果用的是连接字符串方式就写成charsetutf8。第二步在PowerDesigner里调整连接参数。如果ODBC配置没法改可以在PowerDesigner连接数据源后仍然乱码那么我建议你换一种逆向思路——导出数据库结构为SQL文件然后用PowerDesigner的**“从脚本文件逆向”**功能。4.2 从SQL脚本逆向更稳定、更可控PowerDesigner除了直接连数据库还支持从SQL脚本文件逆向数据库结构。这个功能在以下场景非常有用数据库在公网/内网环境不允许直接开放ODBC连接。目标数据库类型PowerDesigner没有对应的ODBC驱动比如某些国产数据库。直接连库时各种报错乱码、驱动不匹配、权限不足而SQL脚本文件能完整保留所有结构定义。操作方式用数据库管理工具比如MySQL的mysqldump命令导出建表脚本只导结构不导数据mysqldump -u root -p --no-data your_database schema.sql打开PowerDesigner新建PDM选择正确的DBMS类型。执行Database-Reverse Engineer Database在数据源选择界面不要选ODBC选择Script files然后指向刚才的schema.sql。PowerDesigner会解析SQL脚本中的CREATE TABLE、CREATE INDEX、ALTER TABLE ADD CONSTRAINT等语句重建模型。这个过程不依赖网络和数据库权限只要SQL脚本语法符合标准成功率通常比直接连库更高。需要注意的一点是SQL脚本里的语句是否完整直接决定逆向质量。如果mysqldump导出时加了--skip-comments注释信息会丢失如果表之间的外键是通过ALTER TABLE语句在脚本末尾添加的PowerDesigner也能识别但前提是你的mysqldump没有把外键关联语句放在被注释掉的Dump区。建议在导出时加上--routines、--triggers如果你需要这些对象同时保持默认的外键导出不关闭。关于SQL脚本逆向还需要提一个兼容性问题PowerDesigner对SQL语法的解析不是100%通用的。如果你的SQL里有特殊的类型比如MySQL的ENUM、SET或者使用了自定义函数做默认值PowerDesigner可能会报“Syntax error”或“Cannot parse”提示。这种情况下可以先在PowerDesigner里建一个空的PDM把错误语句单独抽出来人工处理或者对SQL脚本做一次“清洗”把PowerDesigner不认识的类型替换成标准类型再导入。4.3 表太多导致逆向卡死分批过滤几百张表的大库全部逆向时PowerDesigner会变得非常卡。我在一个大约400多张表的库里试过直接全选逆向跑了将近40分钟期间界面几乎无响应最后还因为内存不足报错退出。后来我学到一个更稳妥的做法分批逆向先创建多个空白PDM每个PDM只处理一个模块的表。具体步骤在数据库一侧用一个工具查询出表清单按业务模块分组。比如t_order_%是一组t_user_%是一组t_goods_%是一组。在PowerDesigner里对每一组新建一个空白PDMDBMS类型选择正确。逆向时只勾选该组的表。CPU/内存压力小很多几乎不会卡。全部逆向完成后使用File-Merge Models功能把多个PDM合并成一个总模型。Merge Models是PowerDesigner一个非常实用的功能它可以把两个PDM中的同名对象合并不同名的对象追加进来。合并时注意如果两个PDM里有相同的表名但结构不一致PowerDesigner会提示冲突让你选择保留哪一个版本。所以分批逆向时务必要保证分组的模块之间没有同名表。这个方法不仅解决了卡顿还有一个额外好处可以让多个不同的表模块分别由不同人负责逆向再合并到总模型中适合团队协作场景。4.4 外键关系缺失不完全是工具的锅这一步要重点讲因为我碰到过好几次类似的问题逆向完成后ER图里只有一堆孤零零的表没有一条关系线。不少人把这个当成PowerDesigner不好用的证据但真相往往不是这样。PowerDesigner生成外键Reference的机制是它读取目标数据库的系统表查找哪些列上有真正的、数据库级别的FOREIGN KEY约束。如果找到生成Reference如果找不到那么即使你在业务逻辑上知道order.user_id应该关联user.id模型里也不会出现任何关系线。这正是老数据库系统的典型特征应用层管理外键数据库层不建立约束。原因可能是当年开发时为了避免数据库约束影响性能也可能是ORM框架自动管理关联没有手动在DDL里写外键。遇到这种情况逆向出来的模型仍然有价值但ER图就不完整了。解决方式有两种手动在模型里补Reference。在PowerDesigner里右击空白处选择New-Reference在弹出的编辑窗口里选择源表、目标表、关联字段。虽然麻烦但能够把业务层的关联关系画出来。如果数据库里有命名规范的外键索引或唯一索引那么至少索引信息会被逆向出来你可以根据这些索引名推断哪些表之间有潜在关联再去业务代码里确认。这里补充一个对Oracle库的注意点Oracle里外键约束默认是ENABLE状态但如果外键被DISABLE或者VALIDATE子句影响PowerDesigner读取时会受到一定限制。总体而言直接连库逆向Oracle的时候外键识别率比MySQL高一些因为Oracle规范建库时外键约束存在得更加普遍。5. 逆向之后的加工把模型变成能用的交付物5.1 生成HTML文档给团队一份可搜索的报表PowerDesigner可以一键生成整个模型的HTML文档包含每个表的字段清单、索引、约束、关系图。操作很简单Report-Reports新建一个报告选择Standard PDM Report模板然后点击生成即可。生成的HTML文件不需要安装PowerDesigner就能在浏览器打开非常适合团队内部查看。我常用它来快速定位某个字段在哪些表里出现全文搜索或者在项目评审会上展示表结构的全貌。这里有个经验默认报告模板的内容比较粗糙字段描述、关系描述不一定都展示出来。建议在“报告编辑器”里手动勾选显示內容至少包括表列表列的详细定义名称、代码、数据类型、强制、注释主键和索引列表外键关系列表这样生成的报告才有实用价值否则就是个“带图的空壳”。5.2 正向生成DDL脚本模型修改后重建表结构逆向模型的最终目的之一就是“改完再生成”。在PowerDesigner里你可以直接对表结构进行修改比如加字段、改类型、加索引然后通过Database-Generate Database生成对应数据库的DDL脚本。这里有一个功能必须重点提醒PowerDesigner可以生成“增量修改”脚本不是简单地生成整库重建脚本。在Generate Database对话框里选择Generate Script之后PowerDesigner会自动分析当前模型与已保存的DBMS结构之间的差异如果你在逆向时保存过原始版本工具会记住基线然后只生成必须的ALTER TABLE语句。这比手动写Change Script靠谱得多也能避免误操作。但注意这个“增量修改”功能依赖一个前提你需要在逆向完成后立即执行Database-Generate Database选择“保存当前数据库结构”或类似选项把逆向出的原始结构保存下来。之后每次改动模型PowerDesigner才知道要和哪个基线比较从而精确生成变更脚本。如果没保存基线PowerDesigner会默认生成目标库的完整建表脚本这种脚本拿到生产环境去执行是非常危险的。5.3 PDM转CDM梳理业务概念的另一种视角PowerDesigner的多模型机制非常有意思PDM是物理模型CDM是概念模型。逆向得到PDM后你可以一键把它转换成CDM得到一份去掉物理存储细节、更贴近业务分析的模型。转换步骤在PDM中执行File-Save As或File-New Model选择“Conceptual Data Model”类型。选择Tools-Generate Conceptual Data ModelPowerDesigner会把物理表转换成实体把外键转换成关系把数据类型映射成CDM的通用类型。转换完成后通常需要手动整理实体名称和关系描述因为物理表名往往是t_user这类带前缀的命名在CDM中最好改成用户这类业务名称。PDM转CDM的意义在于它能把数据库实现细节剥离出去让业务人员也能看懂模型图。在项目初期做需求评审时CDM比PDM更好沟通。当然PDM转CDM不是无损的物理模型里的一些特性比如索引、触发器等在CDM里不存在转换后这些对象会被丢弃或忽略。所以我的习惯是CDM用于沟通PDM用于开发实施两者互补不能互相替代。5.4 使用模型比较工具两个版本的差异一目了然PowerDesigner内置了一个Database-Compare Models或Version菜单下的对比功能可以帮助你对比两个PDM模型之间的差异或者对比模型与数据库实际结构之间的差异。使用场景非常典型你在模型里加了几个字段然后去开发库执行了ALTER TABLE但生产库还没同步。此时可以打开PowerDesigner选择Compare Model to Database它会连到目标数据库把模型结构和实际库结构做对比列出“哪些表和字段在模型中已存在但库中没有”“哪些字段在库中存在但模型中没有”“数据类型是否有差异”等。这个工具在数据库结构变更审计中非常有用。我经常把它用流程里逆向生产库结构保存为基线PDM。在开发分支上修改模型生成开发库的变更脚本。上线前再次逆向生产库结构与控制版本做对比确认变更范围符合预期。这样一来数据库结构的变更就变得可管控、可回滚不再依赖“记性好的人”。6. 关于PowerDesigner逆向的几个实用建议到这里核心操作和坑都讲得差不多了。最后补一些零散的实践建议都是我实际用下来觉得很重要的。第一尽量用脚本逆向而不是直连数据库。直接连数据库确实方便但受网络、权限、驱动、编码因素影响太多。只要你能拿到一份完整的建表SQL脚本就先导出来再用脚本逆向。稳定、可控、可以反复执行也方便多人协作。Script逆向的局限性在于PowerDesigner不可能理解每一种方言或特殊语法遇到解析失败的小段SQL可以用人工手动补充而不是反复跟驱动斗争。第二永远先确认“库表信息是否完备”。在逆向之前先在数据库里查一下表注释、字段注释情况。如果大量字段没有注释逆向出来的模型哪怕是完美的ER图在业务上一文不值。建议逆向前先花点时间在数据库层面把注释补齐然后逆向出来效果会好很多倍。-- 一次性批量补注释的MySQL示例按需调整字段和表名 ALTER TABLE t_user MODIFY COLUMN user_name VARCHAR(50) COMMENT 用户姓名; ALTER TABLE t_user MODIFY COLUMN user_pass VARCHAR(100) COMMENT 登录密码;第三不要一上来就逆向全库。先挑一个小模块的表做实验比如只选5~10张有代表性的表验证连接、编码、外键识别都正常了再大批量操作。等几百张表跑完才发现中文乱码或者缺外键返工成本极高。第四建模阶段就规划好命名规范。逆向出来的模型往往带着历史数据库的坏味道前缀混乱、大小写不一致、缩写看不懂。如果你后续要用这套模型做正向开发建议在模型里统一修改命名规范。PowerDesigner的Tools-Model Options-Naming Convention可以配置自动转换规则比如把下划线命名转为驼峰命名。但要注意一旦改变了对象的Code属性生成脚本时会使用新名称和原数据库就对不上了所以改命名前要想清楚这套模型是“只读分析”还是“驱动开发”。第五PowerDesigner 16.5不是万能的别指望所有数据源都能完美兼容。像PostgreSQL、国产数据库PowerDesigner的ODBC支持时好时坏能正常逆向是运气好遇到解析错误也很正常。在需要兼容多种数据源的场景下我更倾向于用一个通用方案把每种库的结构导出为DDL脚本统一用脚本逆向。这样可以绕过驱动兼容性问题哪怕最终某些细节需要手工调整工作量也远比调试ODBC要小。7. 从逆向到建模老项目重构的一条高效路径最后分享一个完整案例算是给整篇文章收个尾。我之前参与过一个项目遗留系统的数据库有300多张表没有任何设计文档代码里还混着三套命名风格。团队要在这个基础上升级改造第一步就是梳理清楚表结构和关系。我当时的做法是先通过mysqldump --no-data把所有表的建表脚本导出为schema.sql。用PowerDesigner脚本逆向功能把schema.sql转成PDM模型。逆向完成后检查表和字段数量与INFORMATION_SCHEMA.COLUMNS查询结果做对比确认没有遗漏。修正主键和外键——因为原库基本没有数据库级外键我在模型里补齐了Reference关系ER图才真正“画起来了”。用VBScript脚本批量补充字段注释先从业务代码中提取字段含义映射表再去填充Comment。生成HTML报告发给团队评审同时输出一份Excel表结构清单用于归档。整个过程大概用了两个工作日。相比之前靠肉眼翻SQL文件去梳理的方式效率高得不是一点半点。最重要的是最终交付的PDM模型成了团队后续数据库开发的基线——每次结构变更都在模型上操作再生成变更脚本再同步到数据库。这也是我想强调的一点逆向只是起点不是终点。PowerDesigner真正的价值在于把数据库结构变成一个“可以修改、可以对比、可以生成脚本、可以多人协同”的工程资产。你用几十分钟把数据库逆成模型再用下来收获的是长期的维护效率。如果你手上也有一套说不太清楚的老库建议照着这篇文章的路径走一遍。过程会踩坑但一套模型梳理清楚之后整个项目的数据库结构也就真的“门儿清了”。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →