【发布时间】:2020-02-17 13:09:18
【问题描述】:
我有一个管理我们机构活动的应用程序。最近为员工启动了一个新程序,我被要求在同一个应用程序中处理它。这项针对员工的新计划有两条路径,第 01 组适用于最近雇用的人员,第 02 组适用于有经验的人员。
所以每年都会有 12 到 15 场活动。例如
EV-001 - Skill 01 --- Mandatory
EV-002 - Skill 02 --- Mandatory
...
EV-013 - Skill 13 --- Optional
EV-014 - Skill 14 --- Optional
新员工计划将要求他们在一年内参加 5 次特定活动,我们称之为强制性活动。多年来,这些事件可能会发生变化。明年他们可以包括不同的 5 个事件。
经验丰富的员工计划要求他们在一年内参加任意 5 场活动(从 1 到 14 场)。
我已经有以下表格
- 员工表
- 事件表(事件表有一个我最初计划使用的“事件标签”字段)
- 参与表(用于保存参与任何活动的记录)
所以第一个问题是如何扩展我的数据库以便我可以处理新的需求。正如我提到的,我打算使用事件表中的“事件标签”字段来声明两种类型的事件,强制和可选。对于第 01 组,我检查他们是否参加了 5 种强制性类型的活动,对于第 02 组,我检查他们是否参加了强制性 + 可选的 5 种活动。 所以问题是,如果参与者参加了两次“EV-002 - 技能 02”,那么他的参与应该只计算一次,而不是两次。
最后,我需要显示有多少人参加了这个项目,每个小组和每批有多少人完成了这个项目。
那么对于这个问题有没有灵活简单的解决方案呢?
我正在使用带有 ASP.NET/C# 的 MS SQL
【问题讨论】:
-
您在这里没有得到任何回复,因为这不是很清楚。它是如此广泛,以至于回答这个问题的唯一方法就是为您设计数据库。这不可能发生,因为我们不知道任何实际需求。就目前而言,这是无法回答的。
-
我已经说过我有一个完整的活动管理数据库,但我需要扩展它,以便我们可以识别参加过特定研讨会的员工。员工分为两组。必须参加特定活动的人和需要参加活动列表中特定数量的活动的人。我的问题是:我如何处理员工在数据库中而不是在代码方面所需的参与逻辑。我不知道如何简化它。
-
好吧,我们不知道您当前的架构是什么,所以任何人都知道您需要做什么来扩展它。我了解您想要扩展您的数据库,但没有关于您拥有什么以及您正在尝试做什么的详细信息。首先发布您拥有的表的 ddl 并解释您想要完成的任务。请记住,我们不知道您的申请或要求,因此您必须比您旁边的工作人员更详细地解释事情。
标签: sql sql-server database database-design schema