1

有关使用 Active Directory 和 Exchange 的可能解决方案,请参阅下面的帖子。

我们想在 SQL 中创建一个培训数据库,我们可以将其用于我们员工的内部培训课程。不幸的是,我没有任何数据库设计经验,也没有机会购买和阅读有关该主题的适当书籍。

在阅读了一些在线教程后,我刚刚开始创建一个数据库,如果我开始或多或少正确,我希望您审查我的设计并为我提供一些反馈。

课程表将存储我们的培训课程及其持续时间、容量以及您将在本课程中学到的内容的简短描述。培训课程表将用于将课程与特定培训和培训完成日期联系起来。培训师是提供内部课程的同事。

出勤表存储培训课程 ID 以及员工是否参加了课程或他是否不能参加。

请在下面找到我们的数据库图:

替代文字 http://img8.imageshack.us/img8/2464/trainingdb.jpg

稍后我们还想存储与培训课程相关的工作职位。例如,我们的网络介绍课程与 1 级分析师、2 级分析师和团队领导相关。我们的 ITIL 课程仅适用于团队领导。

您将如何存储这些信息?你会使用一个单独的表格来处理职位并为此使用多对多关系吗?

非常感谢,

马蒂亚斯

4

3 回答 3

2

结构看起来不错。不过,我建议再添加一个外键关系:Attendance.EmployeeID 应该引用 Employee 表。

考勤不需要自己的主键。员工和会话的组合唯一标识它(给定的员工不能多次参加给定的会话,可以吗?)。您可能应该将这两个 ID 列用作复合主键。

课程真的有能力,还是有能力的课程?

UpdateTime 列有什么用?

于 2010-08-10T13:05:21.417 回答
2

有点简化,不考虑注册,但可以帮助您提出想法。

training_model_v1

于 2010-08-10T14:04:42.083 回答
1

训练db实体框架edmx

下面是表格的解释

我们使用模块类别、模块类型、课程、计划、培训方法和后期工作表来使用下拉列表对培训模块进行分类。关系是 1:n。

模块 <-> 员工关系是 m:n。从模型中可以看出,交集表是 Trainer,我们在其中定义了 Priority 的附加属性,以允许我们为模块定义 trainer 优先级。

培训模块 <-> 角色关系是多对多关系,因为一个模块可以与许多工作角色相关。交集表是 RoleRelevance,我们为每个角色定义所需、推荐、试用和隐藏属性。

培训请求表记录已请求的每个培训请求。如果我们没有可以将请求链接到的域配置文件/SAM,我们也有新的启动请求。

当员工请求培训或为模块定义培训师时,员工表正在从我们的域控制器中填充 AD 查询。该表包括用于发送邀请的员工 smtp 地址。有关如何获取此数据的代码示例,请参阅我的其他 stackoverflow 帖子。

我们使用托管 EWS 为员工、直线经理、培训师和资源/房间创建会议邀请。邀请 ID 和状态(接受/拒绝/未知)存储在 EmployeeInvitation、TrainerInvitation 和 ResourceInvitation 表中。

我们创建的培训课程被插入到培训课程表中。

于 2011-11-22T11:34:52.000 回答