从现有 MySQL 数据库生成 ER 图,为 CakePHP 创建 [关闭]
Posted
技术标签:
【中文标题】从现有 MySQL 数据库生成 ER 图,为 CakePHP 创建 [关闭]【英文标题】:Generate ER Diagram from existing MySQL database, created for CakePHP [closed] 【发布时间】:2011-05-18 14:28:51 【问题描述】:对于 Cakephp 应用程序,我创建了 mysql 数据库。
用什么工具来制作数据库的ER图?表之间的字段和关系以 cakePHP 喜欢的方式创建。
提前谢谢你!
【问题讨论】:
这个问题似乎不是 Cake PHP 特有的,之前已经在这里回答过:***.com/questions/2488/… 【参考方案1】:使用MySQL Workbench。创建数据库的 SQL 转储文件
按照以下步骤操作:
-
点击文件->导入->逆向工程MySQL创建脚本
单击浏览并选择您的 SQL 创建脚本。
确保选中“将导入的对象放在图表上”。
点击执行按钮。
你已经完成了。
【讨论】:
这对我有用,但我看不到表之间的关系?任何想法?建议? 对我来说也很棒。但同样的问题。无法获取表之间的关系。 在最新版本的 MySQL Workbench(6.2,Windows)中,该选项位于 Database > Reverse Engineer 中。导入 MySQL 5.6 数据库时,它为我包含了外键。 从 OS X 6.3 开始,数据库 > 逆向工程师工作得很好。表关系没有问题,它们都包含在内。 尝试使用 apache derby sql。作为一种魅力。谢谢。【参考方案2】:试试MySQL Workbench。它包含非常好的数据建模工具。查看他们的 screenshots 了解 EER 图(增强的实体关系,这是一个提升 ER 图)。
这不是 CakePHP 特有的,但您可以修改选项,以便外键和连接表遵循 CakePHP 使用的约定。一旦您制定了规则,这将简化您的数据建模过程。
【讨论】:
我的印象是 EER 图是“实体-实体关系图”......我也推荐 MySQL Workbench。 查看:en.wikipedia.org/wiki/Enhanced_Entity-Relationship_Model 如果你有一个没有数据透视表的 M:N 关系,那么在 MySQL Workbench 中似乎没有办法在不引入数据透视表的情况下绘制这样的关系。当现有列不遵循其自己的命名约定时,它还会在放置关系时创建列。所以对我来说,MySQL Workbench 对于对现有模式进行逆向工程看起来并不那么高效。似乎更倾向于使用自以为是的(尽管可能是好的)实践来设计一个新的模式。 但是如何在 Ubuntu 的工作台中实现这一点,它的退出方式不同 截图看起来很棒,但您从未真正告诉我们如何到达那里。这不应该是公认的答案。【参考方案3】:如果您不想安装 MySQL 工作台,并且正在寻找在线工具,这可能会有所帮助:http://ondras.zarovi.cz/sql/demo/
我经常使用它为我构建的各种应用程序创建简单的数据库模式。
【讨论】:
【参考方案4】:CakePHP 旨在用作 Ruby on Rails 框架的克隆,在 PHP 中完成,因此任何底层数据库的逆向工程都是毫无意义的。 EER 图应从模型层进行逆向工程。
Ruby 确实存在这样的工具 在这里,您可以看到从 Models 逆向工程的 Redmine 数据库 EER 图。不是来自数据库。 http://redminecookbook.com/Redmine-erd-diagrams.html
使用以下工具: http://rails-erd.rubyforge.org/ http://railroady.prestonlee.com/
【讨论】:
您可以使用 Navicat 或 SQL Yog、DBMS 工具来设计您的 ERD。 在像 Ruby 或 Cakephp 这样的框架中,关系是通过模型来管理的,而不是通过数据库。数据库是在没有关系的情况下完成的,因此,Navicat 或 SQL Yog 不会意识到表之间存在关系...... 是的,没错,我在想应用程序还没有准备好。以上是关于从现有 MySQL 数据库生成 ER 图,为 CakePHP 创建 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
EA逆向生成数据库E-R图(mysql,mariadb数据库-->ER图) v13 及以后的版本处理方式(xjl456852原创)