用シングル/複数のデータリポジトリ。設計DALとBLL - 新しいマルチティアアプリケーションを設計しながら、私は私の<strong>DAL</strong>と<strong>BLL</strong>層設計のための意思決定をする難しさに直面しています関連テーブル
私は、従業員情報がマスターテーブルと1-1および1-Manyの関係を持つ複数のテーブルに分散しているとします。いくつかを以下に示します:Employee_Skill、
Employee_Experience
は、DALのレベルでは Employee_Education、
を
従業員(マスター表)、
Employee_Contact_Detail、
、私は、GETALLのような共通の機能を提供する汎用的なデータリポジトリを持っています各テーブルのGetSingle、Add、Edit、Deleteを実行します。今
は、私は、「汎用データリポジトリ」に由来し、私の「従業員データリポジトリ」を設計し、この中でGetEmployeePersonalDetail、GetEmployeeContactDetail、GetEmployeeEducation、AddEmployeePersonalDetail、EditEmployeePersonalDetailなどのような単一のクラスでは上記のすべての関連テーブルのための機能を追加する必要があります私は "Generic Data Repository"のメリットはあまり得られません。もう1つの方法は、各テーブル用に別々のデータリポジトリを作成し(そして汎用リポジトリから派生させて)、従業員用のビジネスロジックレイヤで単一のクラスを作成することです。
EDIT
私は別のビジネスロジックを作成する場合、私は、DALのレベルでは、オプションの「表ごとに別々のデータリポジトリ」のために行くと、代わりに「従業員」のための「単一のビジネス・ロジック・クラス」の場合クラスは、各データリポジトリに対応して、シナリオを見て卑劣なアプローチになるでしょうか?
ご利用いただきありがとうございます。
あなたがしようとしていることに間違いはありません。この質問に対する具体的な答えはありません。すべての回答は意見に基づいています。したがって、パターンよりも要件に集中するほうがよいでしょう。パターンは私たちの問題を解決するためのものです。何かがあなたの問題を解決すれば、それはあなたのためのパターンです。 –
@A_J、ありがとう、あなたのコメントがあります。私は少し質問を延長しました。 – developer