2012-04-11 9 views
1

弊社では、製品は.NETでフロントエンドとして、SQL Server 2005ではバックエンドとして開発されました。既存のデータベースで正規化は可能ですか?

プロジェクトを開始した当初は、DB正規化手法に従っていませんでした。今、彼らは、データベースに何千もの行が含まれているテーブルが1つだけ含まれているDB正規化を行うと考えました。

この既存のテーブルを分割して正規化を実装することはできますか?

ステップバイステップでどのように進むか教えてください。

ありがとう、

スティーブ。

+4

可 - はい。簡単 - いいえ、確かにそうではありません。この単一の(恐らく**巨大な**テーブル)を分割するのは大変な仕事です。プロジェクト全体を最初からやり直すのは簡単かもしれません.....ちょうどそれらに**新しいプロジェクトをもう一度やらせてはいけません!誰でも**ない** **データベースの正規化**データベースのプロジェクトのために、キーボードの近くでもう一度許可してはいけません。 –

答えて

2

私はSSISパッケージの大ファンです。 ソーステーブル構造(巨大なもの)があり、すでにデスティネーションテーブルを定義していると仮定すると、データを移行するためのパッケージを作成し始めるといいでしょう。 あなたは容易になるだろう、あなたのテーブル構造を言うが、私はあなたがこのような何かがあると仮定した場合: 表の受注 フィールド: OrderIdで、 のCustomerName 商品名を そして、あなたは顧客テーブルと必要なことは明らかですので、1

最初のステップは、ordersからselect distinct(CustomerName)を実行し、それを新しいcustomerテーブルに挿入することです。製品や他のエンティティにも同じことをしてください。

新しいオーダーテーブルを作成するには、巨大なテーブルからorderedまたはorderDateのようなフィールドを直接取得できます。クライアントになると(古いテーブルのテキストは新しいテーブルのIDになります)、名前をIDに変換するルックアップ変換タスクが必要です。

関連する問題