私は、スケジューリングを処理するためのC#のプログラムを書いています。今、各従業員が能力を必要とする元のための彼らのスケジュールに制限があります。社員制限
サリーは唯一
ビリーはわずか5 pm-9pm
から日曜日、木曜日、火曜日作業することができます9 am-3pmから月曜日、水曜日、金曜日に仕事ができますサリーはだけなので、そのため日まで9 am-3pm から月曜日、水曜日、金曜日に仕事することができ、その後、彼女は時間と曜日の異なるセットを働かせることができます。
これらは、私は、各従業員オブジェクトに適用する必要がある制限のいくつかの例です。私が望んでいたのは、これをできるだけ効率的かつ包括的に構築する方法に関する提案でした。明らかに、私はこのデータにアクセスし、これらの制限を適用できるようにしなければなりません。たとえば、マネージャーがスケジュールを立てようとしているときに、彼が火曜日にSallyを予定しているときにそれを見ることができるようにする必要があるのは問題です。また、各従業員のこのデータをどのように保存する必要がありますか?
基本的には良いデザインを - しかし - 私はこのように「上の時間を」反転でしょうあなたが保存するものである:私は似た何かを書いていたとき、それは非常に有用であることが判明しました。これはあなたが本当に興味を持っていることのすべてです。ビットマップは魅力的ですが、実際には苦痛に終わる可能性があります。私はおそらくemp、available_from、avalable_toとしてdbにこれを格納します。これはマネージャに "Satautday Afternoon"の "whos in"を照会する能力を与えます。また、ビットマップでは、ここにはデータがありますか、ここにはデータがありません。 –
私が持っている例はどんなパターンでもありました。何かを保存することができました。時間があることを考えれば、時間切れよりも一般的です。私は、可用性データを保存するスケジューリングシステムは見ていません。データ。 – Kelsey