大きなデータベースが付属しているアプリケーションのメンテナンスを開始しましたが、これは部分的に正規化されていません。重複したデータがたくさんあり、テーブルには多くのフィールド(30+)があります。たとえば、多くのフィールドを含むOrdersというテーブルがあります。私はこのテーブルを分割して分割しますが、データベースレイアウトの変更は許可されていません。例えば、私がリポジトリパターンに固執すれば、OrderエンティティとそのためのCRUDメソッドを作成する必要があると思います。問題は、ビジネスロジックでOrder Entity全体がロード/更新されることはほとんどありませんが、サブセットのみが必要であることです。それは多くのエンティティ(FullOrder、OrderMetaInfo、OrderProcessingDetailsなど)を構成します。通常のデータベースレイアウトのデータアクセスパターン
私の質問は、このようなデータベース混乱に対処するにはどうすればよいでしょうか?私は、Ordersと呼ばれる単純なクラスを作成することを考えていました.POCOとして前述したエンティティと、UpdateOrderMetaInfo()やGetOrderProcessingDetails()などのメソッドを持つよりも、それは2つのテーブルがあり、1つはOrdersであり、もう1つはArchivedOrders(そして、いいえ、フィールドは同一ではありませんが、非常によく似ています。私は大量の重複したコードを実行しているようです。今、私は手作りのSQLクエリを渡し、レコードセットを取得する、本当にシンプルなデータベースアクセスクラスを書くことについて考えるようになりました。あなたはこれよりも良いアイデアを持っていますか?
事実と限界:これはSQLデータベースであり、プロジェクトはC#で書かれています。同じデータベースを使用する別のシステムがあるので、データベースレイアウトを変更すると、ではなく、というオプションがあります。データアクセスにEFやその他のサードパーティ製品を使用すると、でなく、のオプションもあります。
ご迷惑をおかけして申し訳ありません。
あなたはデシベルを使用して他のアプリケーションを変更せ上でそれらを売ります! – Nick