2017-10-03 12 views
-1

オブジェクトをうまく使用しなかった古いプロジェクトを取り上げました。 たとえば、オブジェクトがドライバであるとします。代わりにフィールドコードがそのように、すべてを保存するために、文字列のマップを使用するように設計された古いオブジェクトから新しいオブジェクトデザインにデータを移動するベストプラクティス

private String firstName; 
private String lastName; 
private Date dateOfBirth; 

のように初期化を持っていることの

...

​​

だから、明らかに異なるデータ型に文字列をされたキャスト毎回やりがいがある。

すべてのデータは、MySQL内のBLOB内に格納されているため、バックフィルは唯一の解決策であるようです。すべてのドライバオブジェクトを呼び出して保存し、データをフィールドにマップしてオブジェクトを復元するメソッドを作成します。

ここでのベストプラクティスは、皆さんがオブジェクトリファクタリングについていくつかの光を当てることができると期待しています。

ありがとうございます!

+1

すべてのプロジェクトを意味しますか?データベースに対しては、古いテーブルの名前を変更して再作成し、 'INSERT INTO Driver SELECT FROM Driver_Old'を使用してすべてのデータを「回復」することができます。アプリケーションについては、言語は何ですか?この新しいバージョンで同じものを使用しますか? – MiguelKVidal

+1

ここでの「ベストプラクティス」は、袖をロールアップして汚れた仕事をすることです。 – lexicore

+0

プロジェクト全体でうん。アプリケーションはJavaでデータベースとしてMySQLを使用し、フロントエンド用のstruts2、jspsおよびservletsを使用します。 @MiguelKVidal – ThePirateBae

答えて

1

データベースの観点からは、データを分析してテーブルを再作成する必要があります。 (多分DBを再作成?)

を古いテーブルのデータを読み取るための方法を持っている場合は、OUはこのような何かを行うことができます:

  1. Driver新しいを作成します
  2. Driver_Oldにテーブルの名前を変更します
  3. のようなものを使用して、新しいものに古いテーブルからすべてのデータを挿入し、新たな構造のDriverテーブルINSERT INTO Driver SELECT * FROM Driver_Old

しかし、コードベースには別の問題があります。 そこから、私は2つの異なるアプローチを見ることができます:

A - 最初から新しいプロジェクトを作成し、ビジネスロジックをゆっくりと移行します。

B - 新しいデータベーススキーマと一致するようにプロジェクトコードベースを更新して、調整が必要なものをすべて調整します。

何が良いですか?言いにくい。

データベースとコードの両方を分析する必要があります。

実稼働データベースの場合は、開発環境で行うことをお勧めします。

+0

あなたは男です。お手伝いありがとう。 – ThePirateBae

関連する問題