私は最近、日付のリソースをスケジュールするための小さなasp.net c#プロジェクトを開始しました。手元にある特定のタスクは、特定の日に何時間も労働者を仕事に割り当てることができるようにすることです。基本的には、誰が何に取り組んでいるのか、どのくらいの時間が仕事に費やされているのかなどを確認できます。
このタイプのシナリオを処理するための標準的なアプローチについてコミュニティに確認し、bdlowで概説されている私の意図したアプローチについてフィードバックをもらいたいと思います。特に、このアプリケーションとデータベースの構造に適したUIコントロールに興味があります。
これが私が計画したことですが、それは少し厄介なようで、私が逃したもっと簡単な方法があることを望んでいます。
データベース構造
テーブル:ジョブ、列:Id、JobNumber、Description、HoursAllocated
テーブル:従業員、列:Id、名前
テーブル:EmployeeJob:JobId、EmployeeId、Date、
HoursUI
動的に探していたジョブ/日付の従業員をスケジュールするため各ジョブの行を持つDataTableを作成し、たとえば次の3か月の各日の列を追加します。日付列を追加するときは、EmpployeeJobレコードを確認し、その日の時間を追加します。データテーブルはUIのDataGridにバインドされ、ユーザーはグリッドをスクロールして、誰がいつ何に取り組んでいるかを確認できます。
現在のアプローチに関する懸念
私はいくつかの簡単なテストを実行しましたが、このアプローチはかなり遅いようです。特定のスケジューリングasp.netコントロールを調べましたが、理想的なものはないようです。簡単にするために、標準のコントロールを使用したいと思います。
私のテストでは、約500のジョブ、3か月のデータテーブルを作成することが示され、テストがスケジュールされた2、3の従業員だけが約10秒で時間がかかりすぎました。これにより、カレンダーの日付もデータベースに保存することを検討しましたが、将来のためにデータを維持または入力するのは少しやり過ぎであり、何か他のもののようです。私はエンティティデータモデルを使用していて、コードビハインドからlinqを介してテーブルにアクセスしていました。
従業員の仕事のスケジューリングに使用する開発アプローチ/データ構造/コントロールは何ですか?