让我对 ERD 感到困惑的一件事是,他们是否对如何在技术上实施他们的关系做出任何规定。
在下图中,我不确定该图是否需要在数据库级别或应用程序级别实现这些关系。
是制定任何技术处方还是简单地定义关系并让我决定如何实施?
在构建基于它的东西之前,我是否需要从 ERD 的创建者那里获得更多信息?
让我对 ERD 感到困惑的一件事是,他们是否对如何在技术上实施他们的关系做出任何规定。
在下图中,我不确定该图是否需要在数据库级别或应用程序级别实现这些关系。
是制定任何技术处方还是简单地定义关系并让我决定如何实施?
在构建基于它的东西之前,我是否需要从 ERD 的创建者那里获得更多信息?
看来你正在把问题颠倒过来。
答案当然是:不,没有什么会迫使您在数据库中创建关系。但是你为什么不这样做呢?
这就是数据库被称为关系数据库的原因——因为它为您提供了一个现成可用的解决方案,与工具和持久层很好地集成,并且它对应用程序开发人员的影响是众所周知的。
不在数据库级别实现关系会很疯狂。
ERD 不是您所说的“技术处方”,而只是逻辑关系的表示。
如何在数据库或应用程序中实现它取决于您。
但数据库是实施这些关系的合适场所。
ERD 图是显示实体关系及其基数的逻辑图,尽管它可以同时解释为表关系图或类图,但它们都不是,您仍然需要其他图。
顺便说一句,据我所知,在数据库模型中强制执行关系以保持数据库一致性总是好的。
在验证放入数据库的数据时,我会说尽可能冗余。
在应用程序端进行检查以确保唯一性/数据类型有效性一切正常。并构建数据库以拥有它需要的所有关系。
不要让数据库/应用程序假设一切都是正确的。
这可以为您节省几个小时修复孤立记录和一致性问题的时间。
“是不是在开什么技术处方……”
它看起来不像代码。也许我错过了一些东西。
“或者只是定义关系并让我来决定如何实现它?”
这取决于你的客户。
如果他们认为图表与代码同构,那么您将不得不从约定或上下文中理解缺失的部分。
如果他们不认为图表与代码同构,那么您将不得不决定如何实现它。