将复杂数据输入Access

时间:2010-06-09 01:10:17

标签: ms-access

Access的新手并尝试做一些看似简单但可能非常复杂的事情。我想创建一个项目数据库,每个项目都有几个阶段(即提案,市场营销等),这将允许多个员工在一个项目上工作。即Bob和John正在研究项目编号102.从这里开始,我想输入项目每个阶段的预测开始和结束日期,并输入预测数字,我们将允许每个员工在该阶段工作的时间。那个项目即。

项目 - 员工 - 阶段 - 开始 - 结束 - (列出周)

102 - 鲍勃 - 市场营销 - 5月12日 - 10月21日 - 5月10日 - 3 - 5(第一周3小时,第二周5小时)

等等

基本上所有这些数据都在一张桌子上,还是几张?并且可以动态显示开始日期和结束日期之间的周数,以便我可以输入小时数吗?

我觉得这个数据库会变得非常复杂:S

谢谢, Ĵ

3 个答案:

答案 0 :(得分:2)

无论您是否使用Access,您都应该知道normalization是什么以及它为何重要。

这取决于“严重复杂”对你意味着什么。十几张桌子几乎不会令人费解。

  

一个项目,有多个阶段,   id喜欢的多个员工   跟踪每位员工的工作时间   每个阶段

您需要一些连接表。听起来你在这里有几个多对多的关系:

  • 员工与阶段
  • 是多对多的
  • 项目是多对多的阶段

员工阶段多对多表可能被命名为time_entry,因为您输入的小时数确实需要与员工和阶段相关联。

答案 1 :(得分:2)

也许更多细节会有所帮助。以下是您可能想要的类型的粗略轮廓。如您所述,您将看到需要额外的表格。

1. Projects
ProjectID
Details

2. Employees
EmployeeID
Details

3. Phases 
For this table, you may wish to use a unique phase ID 
or a combined key created from project and either a look-up table 
numeric ID or a description of the phase. Both have their advantages
PhaseID 
ProjectID 
PhaseDescription             
Details 

4. EmployeePhases
Depending on your decision above, either
PhaseID          )
EmployeeID       ) Unique key
Start Date Time  )
End Date Time

or

ProjectID         )
PhaseDescription  ) Unique Key
EmployeeID        )
Start Date Time   )
End Date Time

获取正确的数据可能会有点复杂,但我认为您会发现,与规范化规则相当接近将允许您获取所需的数据,以及您还不知道需要的数据,麻烦最少。

答案 2 :(得分:0)

弹出日历适用于输入开始日期和结束日期。但那么每个empoloyee的工作时间在哪里?

我已经为此设置了一个巨大,缓慢且具有可怕用户界面的Excel文件(其他人在这里很难使用)。

我仍然认为Excel不适合这项任务,Access是可行的方法。

在Excel中,每个员工都有一个选项卡(因此添加/编辑信息很麻烦),每个员工都有一份工作列表(多阶段项目重复工作),然后是输入小时数的日期列表。使用可能相同的语句,文件可以正常工作,但是很差,并且在没有大量手工工作的情况下也不会提供我们想要的信息。