我正在大学做一个项目,它包括一个 MySQL 数据库。我根据表列表及其各自的字段对数据库进行了设计。
我应该以什么形式展示这个设计?只是表格和内容的列表?在 ERD 中?你如何展示你的设计?
澄清一下-无论您回答什么,我不仅希望您说明如何展示您的设计,还希望您使用哪些工具来创建图表/列表/表格等。
我正在大学做一个项目,它包括一个 MySQL 数据库。我根据表列表及其各自的字段对数据库进行了设计。
我应该以什么形式展示这个设计?只是表格和内容的列表?在 ERD 中?你如何展示你的设计?
澄清一下-无论您回答什么,我不仅希望您说明如何展示您的设计,还希望您使用哪些工具来创建图表/列表/表格等。
让我们从你教授的角度来看这个。如果我是他/她:
我需要一个ERD。没有它,我看不到数据库设计中最基本的问题之一,即表是如何相关的。
我还期望一些基本的用例/要求。你想用这个数据库设计解决什么问题?
我想看看有什么索引,特别是在外键列上。我想查看所有表中的预期行数,以确定是否甚至需要索引。
我想查看列数据类型以确定它们是否符合要求。我想看看哪些列接受 NULL 值,因为如果你不小心,这通常会导致问题。
如果我使用的是 SQL Server,我可能会在 SSMS 中创建一个图表来显示一些基本的 ERD。也可以使用 Visio。我可能会使用 Visio 来创建我的用例,或者可能使用 Microsoft Word。
ERD 是唯一的出路。正如他们所说,一张照片胜过一千个字。
但不要试图将整个数据库放在一张图上。除了最微不足道的情况外,在所有情况下,尝试一口气消化整个数据库设计都会让您的听众不知所措。相反,将图表分解为仅描述每个图表中最相关表格的主题区域。例如,销售点系统可能具有用于库存、销售、会计、客户管理、安全、审计和报告的单独图表。有些表格会出现在多个学科领域——这是意料之中的。
就工具而言,没有什么比 ErWin 更好的了,但它确实很昂贵,而且只适用于 Windows。Visio 在企业环境中无处不在,但仅在 Windows 上可用,而且也不便宜。Mac 提供了一些非常好的图表工具;他们中的大多数不是免费的。
Dia 是一个不错的、免费的、跨平台的图表工具。不过,这有点古怪。而且我在使图表看起来像我希望它们看起来一样漂亮方面并没有取得太大的成功。
对于 MySQL,我使用过fabFORCE dbDesigner,它还不错,但我确实发现当时它对多个主题领域的支持有点欠缺——也许他们已经改进了它。但它是免费的,可以在 Windows 和 Linux 上运行。
对于实际演示,我从这些图表工具创建图像并将它们拉入演示软件(PowerPoint、KeyNote 或 OpenOffice Impress)。这些演示文稿可以导出为 PDF 并分发给观众;他们只需要一个 PDF 查看器就可以稍后查看信息。
不要忘记讨论不适合 ERD 的设计方面:
1)您的分析模型中的继承/聚合关系如何在您的数据库中实现。
2)您将如何支持 rdb 中对象的层次结构(如果有的话)
3) 列出分析模型中但 rdb 设计不支持的关系。
4)ETL过程,跟踪变化,跟踪模式变化,基于资源的安全性。
5)存储分区和维护方面(优化备份时间的目标之一)
6)在prod test(测试岛数据)和测试环境中轻松克隆db
mysql workbench将为您制作漂亮的图形,用于演示以及其他许多复杂的功能。
取决于观众。ERD 当然不是唯一的答案,也可能不是最好的。你应该选择一种你的听众会理解的媒介。