gpt4 book ai didi

MySQL 存储记录的进度和预期进度

转载 作者:行者123 更新时间:2023-11-29 12:09:53 24 4
gpt4 key购买 nike

我需要每周记录一个项目的进度,但我还需要存储这些时间间隔的预期进度,以便将来进行比较。

通常,每个项目都有多个不同持续时间的任务,这些任务构成了项目的总持续时间。

首次存储项目时,我会知道开始日期和结束日期,因此我会将每周间隔存储在日志表中。然后,我可以将其映射到任务,以存储每个时间间隔的预期进度。然后,我计划使用 cron 作业来记录每周的实际进度。

我对这个解决方案感到不轻松。如果项目的计划日期发生变化怎么办?如果存储另一个任务并延长项目的总持续时间,则原始存储的间隔可能不匹配。另外,如果任务在周中开始怎么办?这与项目范围的间隔不匹配?

我如何在 MySQL 范围内执行此操作?

最佳答案

一些提示:

  1. 不要在项目表中存储汇总任务数据。由于任务数据可能会发生变化,因此它们应该只存储在历史快照表中,并且应该计算聚合。
  2. 可能存在一些业务因素会影响计划结束日期是应存储还是仅计算。例如。项目经理可能有一个他们同意的固定日期,只有在与客户达成协议(protocol)后才能更改(可能与添加/删除任务分开)。计算当前预期结束日期也可能很有用,但上一点也适用于此。
  3. 建议使用一个简单的“快照”表,该表不指示何时制作进度快照,而是允许在任何特定时间记录特定任务的当前数据。
  4. 存储任务的原始估计以及当前记录的时间和剩余估计可能很有用。如果是这种情况,则原始估计也不需要存储在快照表中,因为假设它不会更改并且可以简单地引用。

这是一个简单的模式,作为十个的入门:

CREATE TABLE `project`
(`id` int auto_increment,
`name` varchar(255),
`startDate` datetime,
`plannedEndDate` datetime,
PRIMARY KEY (`id`));

CREATE TABLE `task`
(`id` int auto_increment,
`project_id` int,
`originalEstimate` int,
`timeLogged` int,
`remainingEstimate` int,
PRIMARY KEY (`id`),
KEY `FK_task_project` (`project_id`),
CONSTRAINT `FK_task_project` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`));

CREATE TABLE `progress`
(`id` int auto_increment,
`task_id` int,
`timestamp` datetime,
`timeLogged` int,
`remainingEstimate` int,
PRIMARY KEY (`id`),
KEY `FK_progress_task` (`task_id`),
CONSTRAINT `FK_progress_task` FOREIGN KEY (`task_id`) REFERENCES `task` (`id`));

关于MySQL 存储记录的进度和预期进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30877624/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com