代码之家  ›  专栏  ›  技术社区  ›  Amir Rachum

如何呈现数据库设计?

  •  8
  • Amir Rachum  · 技术社区  · 14 年前

    我在大学做一个项目,里面有一个MySQL数据库。我为数据库设计了一个表列表和它们各自的字段。

    我应该以什么形式呈现这个设计?只是表格和内容的清单?在急诊室?你如何展示你的设计?

    为了澄清-无论您回答什么,我不仅希望您的设计如何呈现的规范,而且希望您使用哪些工具来创建图表/列表/表等。

    5 回复  |  直到 14 年前
        1
  •  5
  •   Jeff Knecht    14 年前

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

    但不要试图把整个数据库放在一个图表上。在除了最琐碎的情况之外的所有情况下,试图一次性消化整个数据库设计对您的读者来说都是压倒性的。取而代之的是,将图表分解成主题区域,只描述每个图表中最相关的表。例如,销售点系统可能有单独的库存、销售、会计、客户管理、安全、审计和报告图表。有些表格会出现在不止一个主题领域——这是意料之中的。

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

    Dia是一个体面的、免费的、跨平台的绘图工具。不过,这有点古怪;而且我没有成功地使图表看起来像我希望的那样好看。

    对于MySQL,我使用 fabFORCE dbDesigner 这还不错,但我发现它对多个主题领域的支持在当时有点缺乏——也许他们已经改进了它。但它是免费的,可以在Windows和Linux上运行。

    对于实际的演示,我从这些图表工具创建图像,并将它们拉到演示软件(PowerPoint、KeyNote或OpenOffice Impress)中。这些演示文稿可以导出为PDF格式并分发给观众;他们只需要PDF格式的观众就可以稍后查看信息。

        2
  •  4
  •   Randy Minder    14 年前

    让我们从你教授的角度来看这个问题。如果我是他/她:

    我需要一个急诊室。如果没有它,我就看不到数据库设计中最基本的问题之一,即表之间的关系如何。

    我也期望一些基本的用例/需求。你想用这个数据库设计解决什么问题?

    我想看看有哪些索引,特别是外键列上的索引。我想查看所有表中的预期行数,以确定是否甚至需要索引。

    我想查看列数据类型以确定它们是否满足要求。我想看看哪些列接受空值,因为如果不小心,这通常会导致问题。

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

        3
  •  1
  •   uberweb    14 年前

    mysql workbench 将使您在其他许多复杂的功能中展示漂亮的图形。

        4
  •  1
  •   nvogel    14 年前

    取决于观众。ERD当然不是唯一的答案,也可能不是最好的。你应该选择一种你的听众会理解的媒介。

        5
  •  1
  •   Roman Pokrovskij Archil Labadze    6 年前

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

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

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

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

    4)ETL过程,跟踪更改,跟踪架构更改,基于资源的安全性。

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

    6)产品内测试(测试岛数据)和测试环境的易克隆数据库