2013-08-09 14 views
5

私は、プロジェクトにいる人のためのデータを保持するテーブルを持っています。テーブルには、Start日付フィールド、NULL可能なEnd日付フィールドがあります。だから、人はStartからEndにプロジェクトにいる。お支払いのテーブルデザイン

現在のところ、それらは常にプロジェクトに請求されます。しかし、私は現在、ある期間、課金対象外となりうるが、まだプロジェクトに取り組んでいるという新たな要件を持っている。したがって、彼らはプロジェクトに割り当てられて働いていますが、何らかの理由で、クライアントは割り当てられた期間の一部に料金が請求されず、より低い料金で課金されることもあります。

私の考えは、開始日と終了日を持つ人割り当てテーブルにリンクされた除外タイプテーブルと、無償でゼロに設定できるRateカラムを持つことです。ある期間のオーバーライド値として機能します。

これは有効なデザインのようですか?その人が時間の95%を請求され、おそらく除外されることはないので、除外テーブルを持つことは私にはもっと意味があります。

誰もこれより良いを行う方法のアイデアを持っている場合、それは素晴らしいことです。

瞬間に、私はまた、私は毎日率を得るために、人のスケジュールの開始/終了日をもとにして参加している、「カレンダー」テーブルを持っています。したがって、除外日にも参加して、レートのオーバーライドがあるかどうかを確認できます。私は私のデザインを見つけるかもしれない

問題は、加入の多くは、に基づいていますされています

ON DateValue BETWEEN Start AND End 

そして、私は彼らが最も効率的に参加していることを確認していません。

答えて

1

例外が一つのプロジェクトのために(1対多)回の一つ以上の期間とすることができれば、その後除外テーブルを使用して、あなたのデザインが最高のデザインです。

例:

June 1, 2013 to June 30, 2013 

除外:

June 9, 2013 - 0 Rate 
June 25 to 27 - 30% of Original Rate 

しかし、除外が可能であり、唯一の単一期間の最大値とすることができる場合(または1対1の関係の種類)プロジェクトテーブルの他のフィールドと同じフィールドに配置することもできます。

例:

June 1, 2013 to June 30, 2013 

除外:

June 9, 2013 - 0 Rate 
+0

ええ、それは誰にも1つでも多くでもあります。ほとんどの場合、除外はありません。場合によっては、リソースに対して1つの例外があります。 「6週間はリソースがあり、100ドル/時間で請求されます。先週は無料で($ 0 /時間)彼を雇うことができます。彼はプロジェクトの初心者であるため、最初の週($ 50 /時間)に彼を半分の価格で雇うことができるので、デザインがうまくいくと思います。2つの除外項目があります。 – Craig

+1

@Craig:そうだとすれば、あなたの設計が私が知っている最良の解決策であると言います。つまり、特定の日付の除外または例外テーブルを0またはそれ以下で追加することです元のレートよりも。 – Edper

1

私は、この「除外」テーブルを個人プロジェクトの職業データの単一の記憶域として使用します。人が1回の割合でプロジェクトを変更するように割り当てられている場合、このテーブルには1つのレコードがあります。それ以外の場合は、この表のレート変更の履歴があります。

+0

私はあまりしていません。したがって、時間の99%は、人がプロジェクトに割り当てられ、期間中請求されます。しかし、ある人が3週間プロジェクトに参加することもありますが、コンサルタントは3週間の最後の3日間はクライアントが無料で彼を連れてくると言います。だから、計画は、開始日/終了日とレートを持つ排他テーブルを持つことでした。この場合、開始日は3日間で、レートは0になります。 – Craig

+1

作業員が3週間プロジェクトに参加した場合、2つのエントリを持つテーブル最初の2週間半の期間は通常料金で、最後の3日間は0レートの期間ですか?通常(99%)のケースでは、全期間にわたって1人のエントリを1つだけ持っています。 – stakx

+0

あなたのデータベースにプロジェクト関係者の関係がどのように実装されていますか? – athabaska

0

あなたが特定の期間のために顧客に標準税率の割引を許可しているように見えます。そのような場合は、ディスカウント/除外テーブルで無料でリソースレートを設定する期間、レートを負の値に設定するなど、$ 100 /時間を設定することができます。割引率と標準金額を加算して正味金額を得ることで、特定期間のそのリソースの最終レートを見つけることができます。あなたのデザインでは、除外と人割り当てテーブルの関係がすでに述べられています。あなたのデザインは、どのような割引が顧客に与えられたかを示すことができます。例外的な場合の請求を調整している場合、この方法は問題ありません。

プロジェクト請求、IMOで訂正をしようとしている場合は、期間ごとの料金ごとに人物割当テーブルに別個のエントリが必要です。

お客様に請求書を生成しているときに、修正に基づいて調整後の割引率または新しい改訂請求を表示することができます。

関連する問題