ER 图的重要性

Ank*_*iya 10 erd database-design

我是一名学生,作为我的学术界的一部分,我正在开发几个项目。

在为其中一个项目开发数据库时,我们遇到了一种情况,我们考虑是否需要 ERD。目前,并不是我们每个人都同意先开发 ERD,然后从它开发数据库。

大多数人更喜欢直接根据纸上要求的系统口头开发数据库。

现在,我严格遵循数据库原则。我认为数据库应该只从 ERD 开发。所以,我只想知道以下几点:

  • 行业是否遵循这些原则?
  • 我只是在浪费时间开发 ERD 吗?
  • 开发 ERD 有什么好处?

小智 13

简单明了,把开发一个没有 ERD 的数据库看作是在没有建筑计划的情况下建造房屋。这可能是可行的,因为您认为简单地将一块砖砌在另一块上就足以建造一些东西,但是当其他人对项目负责时,就有可能发生灾难。

根据我的经验,除非您将 ERD 与 CASE 工具(ERWin、MySQL Workbench 等)结合使用,否则您不会从 ERD 中受益太多,这将另外允许您执行一些真正有用的操作,例如正向和逆向工程。即使没有这些功能,具有完整数据库的集中示意图也是有用的,因为有时在数据库本身中实现的约束不足以讲述有关特定数据库实体之间关系的完整故事。

这是一个涉及 MySQL 的示例,您可能知道,它实现了几个内部存储引擎,最著名的是 MyISAM 和 InnoDB。它们之间存在显着差异,最重要的差异之一是 MyISAM 不支持约束。尽管事实上 MyISAM 大量用于 Web 应用程序,这意味着关系逻辑需要通过业务逻辑(应用程序代码)或以其他方式实现。问题是,当您使用 MyISAM 表(实体)对 ERD 进行正向工程时,MySQL 将默默地忽略 ERD 设置的约束,最终您将得到一个无法清楚识别实体之间关系性质的数据库。换句话说,在您开发了数据库布局之后,如果没有 ERD,代码开发人员就无法实现正确的业务逻辑。


gsb*_*gsb 5

ERD 非常适合清楚地了解您的数据库结构。除了对您的项目来说是一个重要的文档人工制品之外,当您需要实施查询时,尤其是表之间的连接时,它会变得容易。想象一下拥有双显示器配置有多好,左侧是 ERD,右侧是查询编辑器。您可以清楚地看到表之间的关系并在此基础上编写查询。如果您的数据库项目非常简单,并且您的项目不需要它,也许没有它也可以。