分层表或自连接 - 任务数据库架构 - Microsoft Access

hierarchical tables or self join - task database schema - microsoft access

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

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

自加入 table 是 'Hierarchial Tasks' 群组的良好替代品还是有更好的方法?我将如何解释不同的子任务字段 - 添加额外的字段到 self-join?

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

这允许您嵌套任意长的时间,任意任务类型,以任意顺序嵌套。您还可以将常见任务字段合并到 tblProjectJobs 中,只留下分隔任务的唯一列。