私はこの例をできるだけ単純にしておきます。 OOPパターンのない古いVB6アプリケーションで、ドメイン駆動型のデザイン(各テーブルを表すビジネスオブジェクト)を実装しようとしています。既存のコードは、10年前のVBアプリケーション(つまり、フィールドにインテリセンスを持たないADODB.Recordsetの使用)と同じように記述されています。既存のコードは非OOPであり、私は既存のパターンに従うことを嫌う。 私の挑戦の1つは、後でDBデザインを見ている開発者にあまり混乱を招くことなく、新しい要件が登場したときにデータベースの変更をどのように処理するかです。正規化されていないワイドテーブルからクリーンブレークを作成する
我々のような負担の上に、明らかに架空の「クライアント」テーブル持って、このアプリでいるとします
(...と上と上と上)市州郵便番号電話CreditLimit CurBalance住所 のclientIdクライアント名担当者名を新しい要件は、新しい金融分野を求めて: 利率の利用規約を
既存の2つの金融分野は、内に存在するので、奇妙なスプリットのように見えるかもしれない、独立した「Fiancials」テーブルに利率と利用規約を破るにしてもよいでしょう元のテーブル?
理想的には、古い財務フィールド(CreditLimit、CurBalance)はこの新しいテーブルに再配置されますが、アプリの多くの部分が破損する危険性があるため、フィールドを移動することは好ましくありません。私は、テーブルをより広くより広いものにする現在の慣行を止めたいだけです。
基本的には、古いコード/テーブルの設計だけを残し、新しいフィールドでクリーンブレークを行い、既存のテーブルや新しいテーブルを処理するドメインオブジェクトを作成すると考えています。つまり、Clientオブジェクトは、財務テーブル。
クリーンな休憩や既存のマックに新しいフィールドを追加することをお勧めしますか? 古いテーブルと新しいテーブルを表すための巧妙な命名体系はありますか? DBAは、既存の設計を切り離すことなく、どのようにクリーンな休憩をとっていますか?
ありがとうございました