5

データベース マップと SQL スクリプトを作成および維持するための最良の方法は何だろうと考えています。私は、テキスト エディターで SQL スクリプトを手書きで書くこと (さらに、紙の上に私の隣にある地図をデザインすること) のファンであることを知っていますが、データベース マップ ソフトウェア (MySQL Workbench、Visual Studio) を使用することを好む人もいます。 ...この投稿にリストされている一部) スクリプトを自動的に生成します。

どちらのソリューションにも利点と欠点があります。次の利点があります。

  • 手でSQLスクリプト
    1. あなたはあなたが書いていることを正確に知っています。
    2. クリーンで読みやすい SQL コードを維持できます。
    3. コードを書くことで、データベースの詳細をよりよく把握できます。
    4. コードを書くことで、SQL の知識を実践することができます。
  • 設計されたマップから自動生成されたスクリプト:
    1. 時間を節約します。
    2. SQL 言語を知らなくても、スクリプトを生成できます (手動で SQL スクリプトの逆の利点としてこれを挙げたとしても)。
    3. タイプミスを防ぎます。

どう思いますか、どのように進めますか?

4

1 に答える 1

7

何かを自動化することで時間と人的エラーを節約できるなら、なぜそれをしないのでしょうか? 次の場合は、SQL の自動生成を試みます。

  1. 私はすでにテスト データベースにデータを入力し、追跡していなかったアドホック SQL 非クエリを作成して実行することで、有機的な方法でスキーマを構築していました。と
  2. データベースが適度に単純で、正規化の量が少ない場合

もう 1 つのまれなケースとして、SQL 形式でスキーマを抽出する必要があるデータ セットの膨大なリストがある場合があります。

手書きの利点は、設計のすべての部分を認識し、データの整合性をより適切に確保できることです (たとえば、外部キーの使用やデータ型の制限によって)。要するに、私はあなたのプロのリストに同意します.

アップグレード スクリプトについては、手動で書くことを強く好みます。通常、スクリプトはかなり短く、最終的にスクリプトを実行する人にとってより読みやすくなるからです。

アップグレード スクリプトに関するヒントの 1 つは、データベースが正しくバージョン管理されていることを確認するために、各スクリプトがテーブルにアップグレード バージョン番号を示す行を追加することです。何かのようなもの:

INSERT INTO DB_VERSION (upgrade_time, version_from, version_to, comment)
    VALUES ('2011-07-04T120320', '2.2.4', '2.3', 'add column x to table y.')
于 2011-07-04T11:14:46.943 に答える