访问数据库结构帮助

时间:2014-04-30 15:33:24

标签: sql database

我是整个数据库场景的新手,我需要一些帮助才能提出数据库结构。

我需要存储在一个表中的数据是ProjectID(主键),日期,记录的#hours和使用的员工(1个或更多)

下一个表需要具有EmployeeID(主键),总项目和总小时数。

如果我正确理解了规范化,我不应该需要第二个表,因为这些表将在需要时计算并且不存储。但是,我不确定如何有效地存储每个项目中使用的员工。这就是困扰我的部分。

1 个答案:

答案 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

我不打算向您展示如何加入员工表,但我假设您可以搜索基本联接语法。