我是整个数据库场景的新手,我需要一些帮助才能提出数据库结构。
我需要存储在一个表中的数据是ProjectID(主键),日期,记录的#hours和使用的员工(1个或更多)
下一个表需要具有EmployeeID(主键),总项目和总小时数。
如果我正确理解了规范化,我不应该需要第二个表,因为这些表将在需要时计算并且不存储。但是,我不确定如何有效地存储每个项目中使用的员工。这就是困扰我的部分。
答案 0 :(得分:0)
我很确定你想要一个视图。此刻你的桌子也有点薄。 如果您希望ProejectID作为主键,那么您只能拥有一行信息。 你的结构:
PID : Date : Hours : Employee (ProjectEmployee table)
4 : today : 3 : 12
4 : yesterday : 4 : 12 <<<< ERROR cannot insert duplicate Primary key
新结构:
ID : PID : Date : Hours : Employee (ProjectEmployee table)
1 : 4 : today : 3 : 12
2 : 4 : yesterday : 4 : 12
现在在一个名为项目的相关表格中
ProjectID : Name (Project Table)
1 : name1
2 : Name2
3 : Name3
4 : Name4
现在为了得到你真正想要的东西:
选择PID,SUM(小时)为totalHours,员工 来自ProjectEmployee PID,员工分组
结果:
PID : TotalHours : Employee
4 : 7 : 12
祝你好运。
如果有效,请标记为答案。
给出以下内容://更新以显示处理项目四的多名员工。
ID : PID : Date : Hours : Employee (ProjectEmployee table)
1 : 4 : today : 3 : 12
2 : 4 : yesterday : 4 : 12
3 : 4 : today : 3 : 5
来自视图的结果
PID : TotalHours : Employee
4 : 7 : 12
4 : 3 : 5
我不打算向您展示如何加入员工表,但我假设您可以搜索基本联接语法。