ERD中可将两个动作相连吗?该做法是否符合良好实践?
关于ERD中连接动作的问题
是否允许?
严格来说,ERD的设计规范里并没有完全禁止这种做法,但这并非ERD的核心用途。ERD的本质是展示数据实体、实体属性以及实体间的关联关系,而非描述业务流程中的操作动作(比如“selects”“stored in”这类行为)。
是否属于良好实践?
绝对不是良好实践,原因如下:
- 偏离ERD核心目标:ERD是数据模型的可视化工具,目的是让团队清晰理解数据结构、实体间的依赖逻辑,而不是记录业务操作流程。把动作放在ERD里会混淆数据模型和业务流程的边界,让阅读者难以聚焦数据本身。
- 可读性与维护性差:其他开发者或维护者查看ERD时,预期看到的是表、字段、外键关联这类数据元素,额外加入动作描述会大幅增加理解成本,甚至引发误解。
- 有更合适的替代方案:业务流程中的动作(用户选择郊区、数据存储)应该放在**业务流程图(如BPMN、普通流程图)**中展示,而ERD只需明确以下内容即可:
- 实体:
User(包含UserID等属性)、Suburb(包含郊区ID、名称等属性) - 关联表:
UserSuburbSelections(关联UserID和SuburbID,可额外添加选择时间等属性) - 关系:
User与Suburb通过UserSuburbSelections建立多对多关联(一个用户可选择多个郊区,一个郊区可被多个用户选择)
- 实体:
正确的ERD设计思路
你的ERD只需呈现上述实体、属性及关联关系,“用户选择郊区”“数据存入表”这类业务动作属于流程范畴,与ERD分开描述才是专业、清晰的做法。
内容的提问来源于stack exchange,提问作者Neelupet YT
相关产品推荐
相关产品推荐

