3

現在、メインのデータベース アクセス クラスにデータベースを作成するコードがあります (SQLite データベースに対するいくつかの CREATE クエリのみ)。コードを使用するつもりはないので、これは不必要に思えます。何か問題が発生し、データベースを再作成する必要がある場合にのみ必要です。するべきか...

  1. データベース作成コードは私のファイル サイズの約 4 分の 1 ですが、そのままにしておきます。
  2. データベース作成コードを別のスクリプトに移動します。とにかくもう一度実行する必要がある場合は、手動で実行する可能性が高く、メインコードの作業中に見えなくなります。
  3. データベース作成コードを削除し、再度必要になった場合はリビジョン管理に頼ります。
4

2 に答える 2

3

コードは残しておいた方が良いと思います。さらに重要なことは、データベース スキーマが変更されるたびに、このコードを維持 (または生成) する必要があることです。

これは次の理由で重要です。

  1. あなたはおそらく何回それを必要とするかに驚くでしょう。サーバーを移行する必要がある場合、または別の環境 (TEST や DEMO など) をセットアップする必要がある場合など。
  2. また、特にしばらくシステムに触れていない場合は、コーディング時に DDL SQL を頻繁に参照することにも気付きました。
  3. 作成したインデックス、一意のキーなど、行った決定の参照があります。

これに対する規律あるアプローチがない場合、アドホックな変更が行われると、データベース スキーマが時間の経過とともに変化する可能性があり、データベースにアクセスするまで発見されない不明瞭な問題が発生する可能性があることがわかりました。さらに悪いことに、規律あるアプローチ (つまり、スキーマの参照定義) がなければ、データベースごとにスキーマが微妙に異なることに気付くかもしれません。

于 2010-06-18T13:45:56.363 に答える
3

何か問題が発生し、データベースを再作成する必要がある場合にのみ必要です。

データベースの再作成は、例外的なケースではありません。そのコードは、新しい/異なるシステムでの展開プロセスの一部であり、コードが動作することを期待する DB 構造を表しています。実際には、これを確認する統合テストが必要です。開発中に手動でディスパッチされた SQL ステートメントを介してスキーマが増分的に作成された単一の DB サーバーを無期限に使用することは、依存すべきものではありません。

しかし、はい、アクセス コードから分離する必要があります。したがって、オプション 2 は正しいです。別のスクリプトは、テストだけでなく展開にも使用できます。

于 2010-06-18T13:47:14.097 に答える