【问题标题】:Class diagram for a recruitment management system招聘管理系统的类图
【发布时间】:2021-07-09 17:45:44
【问题描述】:

我正在构建一个招聘管理系统,首席招聘人员可以登录并添加新工作,然后他可以将候选人分配给该工作。这些候选人中的每一位在被录用之前都有自己的步骤(筛选、面试、测试等)。

例如:id 为 3 的应聘者在被录用前还有 6 步,而 id 为 21 的应聘者在被录用前只有 2 步。

请注意,同一候选人可以分配到不同的工作。 例如:id 为 6 的应聘者,应聘 PHP Dev 职位和 Technical Lead 职位。

我试图弄清楚如何设计这个系统,但我被困在类图上:

编辑:这只是招聘人员的积压工作,招聘人员将从 LinkedIn 职位发布中选择合适的候选人并将其添加到系统中。

【问题讨论】:

  • 您是否考虑过在应聘者和职位之间添加应用程序?
  • @cmolina 确实!我不清楚,在叙述中是猎头公司决定他们想要考虑哪个职位的候选人,还是人们申请工作的传统招聘业务。但无论答案如何,应用程序/分配都是缺失的。
  • 我更新了我的问题并添加了有关用例的更多说明。我确实在查看应用程序/分配,但我看不出它的必要性,它将扮演什么角色?

标签: javascript orm uml class-diagram system-design


【解决方案1】:

澄清

您的叙述中没有明确说明,但我知道这些步骤取决于候选人和工作。例如,候选人 6 的 PHP 职位可能有 3 个步骤,而技术主管职位可能有 19 个步骤。

可能的解决方案

可以使用中间类以非常简单的方式分解这种更复杂的关系:

“任务”是针对一名候选人申请一项工作并定义几个不同的步骤。反之,一个职位可以多于一个分配。同样,一个候选人可以与多个作业相关联,并且每个步骤对应一个作业。

另一种选择是使用关联类

与上一个相比,此图中的语义焦点略有不同:这里有一个多对多关联,在候选和位置之间,并且关联类更多地描述了这种关联。我认为它更符合您的叙述,但无论如何实现与前一个非常相似。

你也可以定义一个三元关联,但我不建议在这里。

其他想法

剩下的问题是:为什么步骤会因候选人而异?来自ethical point of view,这不会危险地促进歧视吗?此外,手动创建步骤会不会很繁琐和重复?

因此,似乎更可取的是,为该职位定义一些标准化的Template Steps,当候选人被分配到该职位时,模板步骤将用于为“分配”创建一组初始步骤。管理员可以删除不必要的,或添加新的,此时填充justification 属性。我把相应的建模留给你作为练习;-)

【讨论】:

  • 我很欣赏这个详细的回复,我在问题中添加了关于上述用例的更多说明。该系统仅用于招聘人员的积压工作,候选人不会在其中发挥任何作用,因此我看不到添加作业类的原因。
  • 对于您的其他想法,我理解您的担忧,但招聘流程可能因部门而异。例如,雇用客户支持与雇用软件工程师是完全不同的过程。
猜你喜欢
  • 1970-01-01
  • 2013-09-09
  • 2023-04-02
  • 2012-01-14
  • 2021-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多