0

少し複雑です。できるだけ明確にしようと思います。

作業計画です。タスクに必要な合計時間、たとえば100時間を見積もり、それを1か月の期間に分割します。たとえば、3月に30時間、4月に20時間、5月に50時間を実行する必要があります。毎月、プランを変更することができます。傾向を確認して将来を予測するには、計画の更新バージョンと履歴バージョンの両方をDBに保持する必要があります。

各タスクの残り時間の合計は重要です(内訳チャートを描くために、スクラムモデルを使用していることがすでにわかる場合があります)。最も柔軟になるように設計する方法がわかりません。また、Access 2003を使用する予定です。レコード数の増加が速すぎると、パフォーマンスが少し心配になります。

私に何か提案はありますか?どうもありがとう。

4

2 に答える 2

0

これは、月次予測の各セットが行のグループとして処理されるように設計します。履歴データをサポートするには、「作成日」フィールドを追加します。つまり、次のようなものです(これは、T-SQL構文であり、ずっと前にAccessをあきらめました)。

CREATE TABLE dbo.TaskEstimates
(
    DateCreated         datetime    NOT NULL,
    EstimateYearMonth   datetime    NOT NULL,
    HoursRequired       decimal     NOT NULL,

    CONSTRAINT PK_TaskEstimates PRIMARY KEY CLUSTERED
    (
        DateCreated     ASC,
        EstimateMonth   ASC
    )
);

DateCreatedたとえば、このフィールドは、今日入力された見積もりセットのすべてのメンバーで同じになります。このEstimateYearMonthフィールドには、年と月のみが含まれます(日= 1、時間部分= 0:00:00.000)。

集計関数とグループ化基準の組み合わせにより、必要なデータの任意の組み合わせを取得できます。

フィールドに加えて、またはフィールドの代わりに、セットごとにインクリメントされるをDateCreated使用することもできます。GroupIDしたがって、最初のセットはすべてGroupID== 1、次のセットは==2というようになります。これは、日付付きクエリの質問ではなく、カウントされたクエリの質問を求められた場合に、履歴選択の方が簡単な場合があります。たとえば、「6月に行われた見積もりを教えてください」ではなく、「3番目のサイクルの見積もりを教えてください」。

ところで、私は通常datetime、すべての日付と時刻に関連するデータを年、月などに分割するのではなく使用するため、各行の型変換をいじる代わりに、いくつかの選択基準を正規化するだけで済みます。

于 2010-07-08T03:52:17.380 に答える
0
TaskMaster
   tid
   datecreated
   estimatehours

TaskBreak
   tid
   dateupdate
   month
   hours

ここでは、TaskBreak(tid、dateupdate)が主キーです。タスク時間を更新するときは、TaskBreakテーブルに新しいエントリを作成します。したがって、このようにして、タスクの更新バージョンと元のバージョンの両方が得られます。
タスクプランを月に1回だけ更新する場合は、月と年だけをテーブルdateupdateの列に格納できTaskBreakます。

于 2010-07-08T05:54:28.853 に答える