【问题标题】:Entering Complex Data into Access将复杂数据输入 Access
【发布时间】:2010-07-18 08:00:55
【问题描述】:

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

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

102 - Bob - Marketing - 2010 年 5 月 12 日 - 2010 年 5 月 21 日 - 3 - 5 日(第一周 3 小时,第二周 5 小时)

等等

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

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

谢谢, J

【问题讨论】:

  • 为什么收缩包装或开源项目管理软件无法为您完成这项工作?

标签: ms-access


【解决方案1】:

也许更多细节会有所帮助。这是您可能想要的事物类型的非常粗略的概述。当您考虑时,您会发现需要额外的表格。

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

获取正确的数据可能会有点复杂,但我认为您会发现,严格遵守规范化规则可以让您获得所需的数据,以及您还不知道自己需要的数据,麻烦最少。

【讨论】:

  • 好吧,这更有意义,你关于规范化的信息还没有沉没。使用您建议的表格,如何处理每周小时数据?我还没有开始构建数据库,但是在我看来,表单条目将允许输入 projectID,输入项目的工作人员,输入项目的阶段,开始和每个阶段的结束日期,然后是关于输入每周工作时间的部分。访问是否能够动态显示数据输入的正确周 x 到 y?
  • EmployeePhases 被草拟为一种保存员工时间详细信息的方式,而不是用于为某个阶段分配的时间津贴的表格。每个员工都会根据该表调出一个包含项目阶段详细信息的表格和一个子表格,用于输入每天花费的时间。查询将允许您提取每天花费的小时数、第一个开始日期、最后一个结束日期和总时间的信息。
  • 如有必要,也可以创建日历。
  • 您可能想设置一些粗略的表格,添加一些关系并查看表格在表单和子表单中交互的方式。您可能还希望查看一些示例数据库,例如 Northwind Traders,它随所有版本一起提供或可以下载。一些代码不是那么热门,但它对于如何让表一起工作的想法非常有用。
  • 这很令人困惑,因为 Access 实际上是两个独立的东西:数据库和用户界面。这些需要分开处理。获取正确的数据库,然后戴上开发人员的帽子并设置表单以将数据放入表中。
【解决方案2】:

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

这取决于“非常复杂”对您意味着什么。一打桌子几乎不会令人费解。

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

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

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

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

【讨论】:

  • 我对一打表没有任何问题,但我似乎无法从逻辑上弄清楚如何将一个具有多个阶段的项目与多个员工联系起来,其中 id 喜欢跟踪每个员工的小时数对于每个阶段......我阅读了关于规范化的文章,我想我比开始阅读时遇到的问题更多
【解决方案3】:

弹出式日历非常适合输入开始和结束日期。但是每个员工的工作时间都去哪儿了呢?

我为此设置了一个 Excel 文件,该文件又大又慢,而且用户界面很糟糕(这里的其他人很难使用)。

我仍然认为 Excel 不适合这项任务,而 Access 是要走的路。

在 Excel 中,我为每个员工都有一个选项卡(因此添加/编辑信息很麻烦),每个员工都有一个工作列表(针对多阶段项目重复工作),然后是一个日期列表,其中输入了小时数.使用 may equal 语句,该文件可以工作,但效果不佳,并且如果没有大量手动工作,就无法提供我们想要的信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    • 2018-12-06
    相关资源
    最近更新 更多