我正在大学里做一个项目,它包括一个MySQL数据库。我根据表列表及其各自的字段设计了数据库。
我应该以什么形式展示这种设计?只是表格和内容列表?在ERD?你如何展示你的设计?
澄清一下 - 无论你回答什么,我都期望不仅要说明你如何呈现你的设计,还要使用哪些工具来创建图表/列表/表等。
答案 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肯定不是唯一的答案,可能不是最好的。您应该选择一种您的受众会理解的媒介。