分层表或自联接 - 任务数据库模式 - 微软访问

时间:2015-08-05 00:57:48

标签: ms-access hierarchical-data self-join

我正在设置Access数据库以跟踪项目任务的成本。这些任务是分层的 - 项目有任务,任务有子任务等。任务与发票上的行项目相关,但并非所有任务都是收费的(它们也用于跟踪进度完成)。

我当前的数据模型只有三层任务,但我想将其设置为允许无限层(在合理范围内)。附加的架构是一个简化 - 我有多个tasklayer2& tasklayer3表适合不同类型的子任务。

自我加入表是否是“层次结构任务”的良好替代品。小组还是有更好的方法?我如何解释不同的子任务字段 - 为自联接添加额外的字段?

enter image description here

1 个答案:

答案 0 :(得分:1)

我建议每个唯一类型的任务有一个表,然后是一个表 (让我们称之为tblProjectJobs)将任务与项目匹配,使用此表中的唯一ID来查找唯一任务。 tblProjectJobs应该有一个可以为空的列(让我们称之为#34; Parent"),如果" Parent"包含tblProjectJobs中另一行的ID号,我们知道当前行是" Parent"中指示的行的子任务。

这允许您根据自己的喜好随时随地嵌套任何类型的任务类型。您还可以将常用任务字段合并到tblProjectJobs中,只留下用于分隔任务的唯一列。