1. 为什么你的PowerDesigner表字段名全是英文?
如果你和我一样,是个经常和数据库打交道的开发或设计人员,那你对PowerDesigner这款数据库建模工具一定不陌生。它功能强大,画个ER图、搞个物理模型,确实方便。但不知道你有没有遇到过这个让人头疼的问题:辛辛苦苦从MySQL数据库把表结构“逆向工程”导进PowerDesigner,结果一看,傻眼了——所有的表名和字段名,都变成了数据库里定义的英文名,比如 user_name、create_time,而我们精心写在数据库里的中文注释,比如“用户名”、“创建时间”,却不知道跑哪儿去了,或者只静静地躺在“Comment”属性栏里,在图形界面上根本看不见。
这问题可太烦人了。想象一下,你要把设计好的数据模型图拿给产品经理或者业务方评审,图上密密麻麻全是 id、order_sn、total_amount 这种“天书”,对方看得一头雾水,你还得在旁边一个个解释:“这个sn是订单号,那个amount是总金额……”沟通效率直线下降,还显得特别不专业。或者,当你自己隔了几个月再回来看这个模型时,面对几十个表、几百个字段,光靠英文缩写去回忆业务含义,简直是场噩梦。我们需要的是在图形化的模型里,直接、清晰地看到中文的业务含义,让模型自己“说话”。
这个问题产生的根源,其实在于PowerDesigner逆向工程的默认逻辑。它从数据库里读取信息时,会把表的物理名称(Name)和注释(Comment)当作两个独立的属性来处理。默认情况下,图形界面显示的是“Name”,也就是建表时写的 CREATE TABLE user_info (...) 里的那个 user_info。而我们想要显示的中文,其实是存储在“Comment”属性里的。PowerDesigner并没有自动把Comment搬到Name的位置显示出来,尤其是当Comment为空时,它更不会做任何处理,这就导致了我们看到的“一片英文”或者“一片空白”的尴尬局面。
手动改?一个表几十个字段,一个项目几十张表,这工作量想想就让人崩溃。所以,我们必须找到一个自动化、批量处理的方法。这就是我今天要跟你分享的实战技巧:利用PowerDesigner内置的VB脚本引擎,写一段小巧但威力巨大的脚本,一键完成所有表名字段名的“中文化”显示优化。我踩过坑,也试过多种方法,最后这个方案是最稳定、最省事的,五分钟搞定,一劳永逸。
2. 准备工作:逆向工程与问题复现
在开始施展我们的“魔法”脚本之前,我们得先把那个“有问题”的场景给搭建出来。你得先看到问题,才知道我们的脚本到底解决了什么。别担心,这个过程很简单,跟着我做一遍就行。
首先,请务必用管理员身份运行PowerDesigner 16。这一点很重要,因为后续执行脚本可能会涉及到对模型文件的修改,以管理员身份运行可以避免一些权限不足导致的奇怪错误。你可以在PowerDesigner的快捷图标上右键,选择“以管理员身份运行”。
打开PowerDesigner后,我们新建一个物理数据模型(Physical Data Model)。点击菜单栏的 File -> New Model,在弹出的窗口里,选择模型类型为 Physical Data Model,数据库类型就选我们最常用的 MySQL 5.0,然后给它起个名字,比如“我的项目数据库模型”,点击确定。
接下来,就是关键的“逆向工程”步骤了。这步的目的是把已经存在于MySQL数据库中的表结构,导入到PowerDesigner里来。点击菜单栏 Database -> Reverse Engineer Database,会弹出一个逆向工程的向导窗口。
在第一个界面,我们直接选择 Using a data source,然后点击右边那个带三个小点的按钮来新建一个数据源。在弹出的数据源管理器中,选择 Connection Profiles,点击“新建”。你需要在这里配置连接到你MySQL数据库的信息:给连接起个名,选择ODBC驱动(或者你已配置好的MySQL ODBC数据源),填写服务器地址、端口、数据库名、用户名和密码。配置好后,可以点“Test Connection”测试一下,确保连接是通的。
连接测试成功后,一路点


160

被折叠的 条评论
为什么被折叠?



