当我在一个新项目上时,我做的第一件事就是设计一个数据库模型。为了可视化模型,我使用了 7 年的 Smartdraw 版本。也许是时候来点新东西了。绘制数据库模型的最终程序是什么。Smartdraw 仅适用于 Windows。有什么东西也可以在unix上使用吗?
20 回答
最好的工具是铅笔和纸。
也许不是您正在寻找的答案,但有时最简单的解决方案是最好的。:-)
白板(和之后拍照的相机)
你的大脑是最好的绘图工具。
我更喜欢在简单的文本文件中开发数据库模式。起初它只包含表名、属性和外键:
公司: 公司名称 ... 员工: 姓名 年龄 公司名称 -> 公司 ... ...:
语法并不重要。它只需要排列清晰且易于更改。后来我添加了类型和 CHECK() 约束,因此文本文件逐渐转换为有效的 SQL 代码。
在早期阶段使用绘图工具只会分散注意力,因为它会鼓励您在移动反应角上浪费时间。取而代之的是,让您的大脑以与阅读书籍时创建幻想图片相同的方式构建图式图片。
随着图式的增长,有必要通过创建概览来支持大脑。然而,在这里,铅笔和纸比任何绘图软件都快。另请注意,没有必要用不重要的细节来混乱概述。只需勾画表名和最重要的关系(外键)。任何进一步的细节都会降低此概述的价值。
但是,如果您真的觉得使用极其详细的图形比使用文本文件和概览图形更舒服,您可能想尝试 DBDesigner4 或 WWW SQL Designer。
我很高兴多年来一直使用Sybase PowerDesigner 。
您看过 Visio 2007 SQL Server 加载项吗?
你可以在这里找到它:http: //dbalink.wordpress.com/2008/04/24/microsoft-office-visio-2007-professional-sql-server-add-in/
我喜欢使用开源思维导图程序Freemind。它类似于用铅笔和纸进行设计,因为没有太多的表面复杂性来中断设计过程。
但它比纸/铅笔有两个巨大的优势:
- 节点折叠
- 轻松拖放重新排列
在大约五分钟内无需使用鼠标即可轻松导航界面。您可以根据需要添加尽可能多或尽可能少的细节,并且可以随时折叠细节以整理您的视图。这是一个示例屏幕截图:
Departments、Employees 和 Hours 表末端的圆圈表示折叠的节点更多。您可以疯狂地使用不同的字体、背景颜色,甚至 HTML 格式。我只是做了一个 [Ctrl]-[B] 来使我的表名加粗。
FreeMind——以及一般的思维导图软件——通过远离创作过程提供了最大的好处。这是我从头开始一个新项目时使用的第一个工具。
注意:我只在 Windows 上使用过该程序,但它在 Linux 上可用。
I like ERWin. Not Cheap, but it can reverse engineer or do initial design + generate CRUD and manipulate db structure. Viso is pretty good for this too, but its not as complete and of course as strong MS SQL leanings is capabilities.
我曾经使用 Visio,但如果您的数据库服务器是 MySQL,请尝试MySQL Workbench。它有一个linux版本和一个win32版本。像他们的其他 GUI 产品一样,它有相当多的怪癖,但它工作得很好,并且能够创建模式图和从图中创建模式。
我也同意铅笔和纸,或白板和相机是勾勒事物的好方法,但我确实喜欢 GUI 工具,用于记录形式更完善或更复杂的想法。
我不知道它是否是绘制数据库模型的“终极”程序,但我使用Visio。不幸的是,它只能在 Windows 中运行。
从好的方面来说,我可以创建自己的形状,或修改现有的形状,并将它们保存在称为模板的集合中。当我双击它们时,我还可以通过对它们进行编程来执行各种操作,从而使我的形状“智能”。
我也使用白板和相机。我第二次使用铅笔和纸。我几乎总是随身携带一支笔(铅笔)和一张纸,因为我总是在脑海中设计一些东西,需要把它记下来。我也喜欢 Visio,但我最喜欢使用的软件程序一直是 ERWin。那东西的价格刚刚好,但它很棒。
WWW SQL Designer是我见过的最好的之一,因为它全是 javascript,所以非常棒。它还可以导入和导出您绘制的所有内容的 xml 和 sql 代码。自从我上次使用以来,他们已经添加了漂亮的贝塞尔曲线。
DIA 还不错,并且有一些工具可以从某些类型的模型中实际生成一些代码。如果您使用的是 PostgreSQL,甚至还有一个工具可以反其道而行之,即 pg-autodoc。
DIA 可用于 Unix,我相信 Windows 也是如此。
我曾经使用 Viso,但现在,由于我更基于 Mac,我使用 Omnigraffle。
不过,我必须承认,就像 andyUK 所做的那样,我在纸上画了一个粗略的草图。
它还取决于您使用的数据库。如果是 MySQL,那么有相当多的可视化开发工具可用,只要有一个谷歌
可能有更多的技术程序,但我使用SmartDraw。我还想指出,“最终”取决于您的情况。找到最适合您或您和您的公司的方法。对你有用的是“终极”。
首先在纸/白板上集思广益/草绘数据库,然后使用图表工具。
哪个工具取决于您的目标数据库。我们使用 SQL Server,因此 SQL Server Management Studio 中的设计器非常适合我们,因为我们同时创建了数据库本身。
对于 linux,我使用 umbrello
如果您正在寻找没有任何逆向/正向工程功能的廉价解决方案/工具,MS Visio 可能是您的最佳选择。但是,如果您打算在 ERD 工具上投资一些钱,请将其花在 ER/Studio 上。
我曾经使用并成为ERWIN的冠军。我一开始使用 ER/Studio,就成为它的粉丝。我是财富 100 强公司之一的企业数据架构师,没有它我不知道如何完成我的工作。
PS:我与这些产品和公司没有任何关系。
OpenOffice 有一个矢量绘图工具,Inkscape 是另一个不错的工具。
否则,您可以使用 Graphviz(点语言)从文本描述中生成此类图表。
还有一些工具可以从现有数据库中生成这样的图表(我首先认为这是你要问的)。
如果您不需要太多,请选择Dia。
我使用了电源设计器。它功能强大但相当复杂。