如何呈现数据库设计?

时间:2010-11-21 12:53:19

标签: database database-design erd

我正在大学里做一个项目,它包括一个MySQL数据库。我根据表列表及其各自的字段设计了数据库。

我应该以什么形式展示这种设计?只是表格和内容列表?在ERD?你如何展示你的设计?

澄清一下 - 无论你回答什么,我都期望不仅要说明你如何呈现你的设计,还要使用哪些工具来创建图表/列表/表等。

5 个答案:

答案 0 :(得分:5)

ERD是唯一的出路。正如他们所说,一张图片胜过千言万语。

但是不要试图将整个数据库放在一个图表上。除了最微不足道的情况之外,它将为您的受众压倒一切,试图一次性消化整个数据库设计。相反,将图表分解为主题区域,仅描绘每个图表中最相关的表格。例如,销售点系统可能具有库存,销售,会计,客户管理,安全,审计和报告的单独图表。有些表格会出现在多个主题领域 - 这是可以预期的。

就工具而言,没有什么比ErWin更好,但它真的很贵,只适用于Windows。 Visio在企业环境中无处不在,但仅在Windows上可用,并且也不是很便宜。 Mac提供了一些非常好的图表工具;他们中的大多数都不是免费的。

Dia是一款体面,免费且跨平台的图表工具。不过,它有点古怪;而且我没有太大的成功使图表看起来很好,我希望它们看起来。

对于MySQL,我使用fabFORCE dbDesigner并且它并不坏,但我确实发现它对多个主题领域的支持在当时有点缺乏​​ - 也许他们自那以后一直在改进它。但它是免费的,适用于Windows和Linux。

对于实际演示,我从这些图表工具创建图像并将其拉入演示软件(PowerPoint,KeyNote或OpenOffice Impress)。这些演示文稿可以导出为PDF并分发给观众;他们将不再需要PDF查看器来查看以后的信息。

答案 1 :(得分:4)

让我们从你教授的角度来看待这一点。如果我是他/她:

我需要一个ERD。没有它,我看不出数据库设计中最基本的问题之一,表格是如何相关的。

我还期望一些基本的用例/要求。您尝试使用此数据库设计解决了哪些问题?

我想看看哪些索引到位,特别是在外键列上。我希望在所有表中看到预期的行数,以确定是否需要索引。

我希望看到列数据类型以确定它们是否符合要求。我想看看哪些列接受NULL值,因为如果你不小心,这通常会导致问题。

如果我使用的是SQL Server,我可能会在SSMS中创建一个图表来显示一些基本的ERD。也可以使用Visio。我可能会使用Visio来创建我的用例,或者可能是Microsoft Word。

答案 2 :(得分:1)

不要忘记讨论不适合ERD的设计方面:

1)如何在数据库中实现分析模型的继承/聚合关系。

2)如何在rdb中支持对象的层次结构(如果有的话)

3)列出分析模型中但rdb设计不支持的关系。

4)ETL过程,跟踪变化,跟踪模式变化,基于资源的安全性。

5)存储分区和维护方面(目标优化备份时间之一)

6)在prod测试(测试岛数据)和轻松克隆db测试环境

答案 3 :(得分:1)

mysql workbench会让你在其他许多复杂的功能中呈现漂亮的图形。

答案 4 :(得分:1)

取决于观众。 ERD肯定不是唯一的答案,可能不是最好的。您应该选择一种您的受众会理解的媒介。