Access的新手并尝试做一些看似简单但可能非常复杂的事情。我想创建一个项目数据库,每个项目都有几个阶段(即提案,市场营销等),这将允许多个员工在一个项目上工作。即Bob和John正在研究项目编号102.从这里开始,我想输入项目每个阶段的预测开始和结束日期,并输入预测数字,我们将允许每个员工在该阶段工作的时间。那个项目即。
项目 - 员工 - 阶段 - 开始 - 结束 - (列出周)
102 - 鲍勃 - 市场营销 - 5月12日 - 10月21日 - 5月10日 - 3 - 5(第一周3小时,第二周5小时)等等
基本上所有这些数据都在一张桌子上,还是几张?并且可以动态显示开始日期和结束日期之间的周数,以便我可以输入小时数吗?
我觉得这个数据库会变得非常复杂:S
谢谢, Ĵ
答案 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中,每个员工都有一个选项卡(因此添加/编辑信息很麻烦),每个员工都有一份工作列表(多阶段项目重复工作),然后是输入小时数的日期列表。使用可能相同的语句,文件可以正常工作,但是很差,并且在没有大量手工工作的情况下也不会提供我们想要的信息。