1

私は最近、日付のリソースをスケジュールするための小さな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を介してテーブルにアクセスしていました。

従業員の仕事のスケジューリングに使用する開発アプローチ/データ構造/コントロールは何ですか?

4

1 に答える 1

0

テーブルの構造は標準のように見えますが、UIはWebというよりもSSMSまたはAccessのように見えます。UIをテーブルと一致させようとすることについて心配する必要はなく、データ構造に関係なく、最初にページに焦点を合わせます。ユーザーの場合、データを表示/入力する最も簡単な方法は何ですか?

現在、データの読み込みは遅すぎる可能性がありますが、それほど多くのデータを読み込む必要がない可能性があります。検索機能(仕事、日付、従業員別)とページングをグリッドに追加すると、一度に返す必要のあるデータの量が制限されます。

情報を表示するためのオプションとして、GridView/ListViewとDetailsViewを調べることができます。ある種のマッピングレイヤーを使用して、生データをUIに必要なものに変換することを検討してください。そうすることで、インターフェイスがデータレイヤーに緊密に結合されなくなり、必要に応じて後で簡単に変更できるようになります。

于 2012-09-15T06:14:14.697 に答える