Kes*_*shi 4 mysql erd database-design mysql-workbench database-diagrams
这是我第一次为将在 MySQL 上构建的数据库制作实体关系图 (ERD)。相关的业务领域是设备问题管理。
在此之前,我永远不会在表之间创建关系,我只会在 MySQLAdmin 中创建表并在我的 PHP/MySQL 代码中进行链接。
我应该建立这些关系有什么理由吗?
我已经阅读了很多关于数据库设计和关系的信息。
我想确保我创建的 ERD 是正确的;我犯错了吗?或者有更好的方法来做到这一点?
正在考虑的 ERD
我的数据库应该做什么:
期望从应用程序维护 PK/FK 关系是一种非常糟糕的做法。在任何非平凡的数据库中,数据有接近 100% 的机会被其他来源更改,包括临时查询、数据导入等。不负责任的认为数据库中的数据受到保护,因为应用程序有保护。当然,您认为您将通过 Web 服务或其他类似服务强制进行所有更改,但实际情况是,没有人会从您刚购买的那家公司添加一百万条新客户记录,通过一项服务一次添加一条记录。您的数据库的设计必须考虑到人们会直接在源头或通过其他应用程序(其中一些可能无法使用您的 Web 服务)更改它的事实。此外,应用程序界面通常比数据更有可能被丢弃或重新设计,当发生这种情况时,您可能会丢失全部或部分数据完整性规则。在设计数据库时,您必须考虑如何随着时间的推移保护数据,而不是考虑对程序员或初始应用程序来说最简单和最方便的方法。数据专业人员在数据库中设置 PK/FK 关系,因为这是数据所在的位置,也是设置它以保护数据质量的最佳位置。
在我目前的职位上,我看到来自许多不同公司的数据,而且我看到太多没有在数据库中建立 PK/FK 关系的数据,因为它们存在数据完整性问题,而正确设计的数据库不会有这些问题。
归档时间: |
|
查看次数: |
4543 次 |
最近记录: |