You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UML设计疑问:Level属性应置于EmployeeSkill关联类还是Skill类?

UML建模:技能等级(Level)属性的放置位置分析

结论:Level属性必须放在EmployeeSkill关联类中

原因如下:

  • 技能(Skill类)的属性应是技能的固有特性,比如技能名称、描述、所属技术领域等,这些属性不随持有者变化。而等级是特定员工对该技能的掌握程度,属于员工与技能之间的关联特性,并非技能本身的属性。
  • 结合你的实例:Jack的Java技能等级是beginner,若另一位员工的Java技能等级是advanced,若将Level放在Skill类中,会出现同一个Skill实例对应多个等级的矛盾,完全违背数据模型的逻辑一致性。
  • 多对多关联引入关联类的核心目的,就是存储依赖于两个实体实例组合的关联属性。Level属性恰好符合这个场景——它不属于单独的Employee,也不属于单独的Skill,而是依附于“某员工掌握某技能”这一特定关系存在。

若错误将Level放入Skill类,会导致无法区分不同员工对同一技能的不同掌握程度,直接破坏模型的业务适配性。

内容的提问来源于stack exchange,提问作者Michael Efraimidis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 14:57:29