プロセス管理アプリである Web アプリケーションを構築しています。いくつかの異なるタイプの従業員に対して、実行するタスクのリストが表示されます。各従業員がタスクを完了すると、次の従業員に引き継がれます。
タスク階層は、バッチ > ロード > アセンブリ > パーツ > タスクです。現在、従業員タイプごとに最初に取り組むべきタスクを決定するための 8 つのルールがあります。これらの規則はパーツのサイズに適用され、そのパーツの完成が階層にどのように影響するかにも適用されます。たとえば、パーツ A が完成した場合、バッチ全体が完成しますが、パーツ B はそうではなく、そのバッチには完成すべき他のパーツが残っているためです。
とにかく、それはシステムがどのように機能するかのエレベーターピッチです. 私が理解しようとしているのは、ルールが変更される可能性があり、さらにルールが追加される可能性があることを念頭に置いて、これを行うための効率的で高速で保守可能な方法です。
当初、私は DB (SQL 2005) にすべての面倒な作業を任せるつもりでしたが、より複雑なルールを DB で実装するのが難しいのではないかと心配しています。そのため、別の方法として、タスクのリストを中間層に引き出し、オブジェクトのコレクションを作成し、各ルールをコレクションに適用します。各ルールを分離して T-SQL に変換できることは間違いありませんが、タスクの種類に応じて最大 8 つの基準で並べ替えるのは、かなり面倒に感じます。
中間層のアプローチで私が見ることができる1つの利点は、タスクフローを変更できる、より緩く制限されたシステムを作成できることです。これは、DBではより難しいと思います。
それで、あなたは何をお勧めしますか?私が考えていない3番目の選択肢はありますか?
編集[1]これをもう少し修飾するために、DBは私が最初に開発したものから変更されることは期待されていません.