1

最近、助けが必要な SQL Server 2000 データベースの開発を引き継ぎました。まもなく SQL Server 2005 にアップグレードする予定です。このデータベースには、テーブルに監査フィールド (CreatedBy、CreatedDate など) がなく、外部キーがなく、全体的な設計がひどいものです。インライン SQL を使用してデータベースに直接アクセスするプログラムや、その他の古い/悪い慣行が半ダースあります。

スキーマとデータ アクセスをクリーンアップしたいと思います。開始するのに適した場所について何か提案はありますか? これは運用データベースであり、改善されている間も機能し続ける必要があります。

4

2 に答える 2

1

おそらく、データベースにアクセスするアプリケーションから始めなければならないでしょう。多くの場合、データベース スキーマを変更すると、それらの他のアプリケーションが機能しなくなることがわかります。私が見つけた最も一般的な原因は、select * sql に続いて、列の位置に基づいてデータにアクセスすることです。最後の列の前に列を挿入すると、そのコードは壊れます。また、新しい列にデフォルト値を使用しない限り、挿入コマンドは失敗します。

これらの外部プログラムがデータベースをどのように使用しているかを理解し、新しいデータベースを設計してから、これらの各プログラムを一度に 1 つずつ新しいデータベースに移行することをお勧めします。

運用中にこのデータベースに変更を加えると、他のアプリケーションが破損することがほぼ確実です。

于 2008-10-20T19:14:31.237 に答える
1

ビューの背後にある現在のスキーマ/インターフェイスを維持しながら、スキーマを修正、分析、正規化などできる場合があります。

ビューで before トリガーを使用すると、アプリが期待どおりに読み書きできるようになります。

このようにして、現在のアプリを機能させながら、クライアント アプリを新しいスキーマに移行することができます。また、新しいスキーマでは、データ (DRI、FK、DF、CK など) がより安全になります。

これにより、月に 1 回実行される予想外のスプレッドシートのインターフェイス コントラクトの一貫性も保たれますが、月末のレポートに不可欠であることを誰も知りません...

于 2008-10-20T19:22:50.533 に答える