sql >> データベース >  >> RDS >> PostgreSQL

SQL:ENUMと1対多の関係の利点は?

    PostgreSQLを使用して示した例ですが、他のRDBMSも同様の構文を持っています

    それは正しくありません。これはISO/IEC / ANSI SQL要件ではないため、商用データベースでは提供されていません(ルックアップテーブルを提供することになっています)。町の小さな端はさまざまな「エクストラ」を実装していますが、町の大きな端のより厳しい要件やうなり声は実装していません。

    DataTypeの一部としてENUMもありません。これはばかげています。

    ENUMの最初の欠点は、非標準であるため移植性がないことです。

    ENUMの2番目の大きな欠点は、データベースが閉じていることです。 (アプリとは関係なく)データベースで使用できる何百ものレポートツールは、それらを見つけることができないため、名前/意味を予測することができません。通常の標準SQLルックアップテーブルがある場合、その問題は解消されます。

    3つ目は、値を変更するときにDDLを変更する必要があることです。通常の標準SQLデータベースでは、ルックアップテーブルの行を挿入/更新/削除するだけです。

    最後に、ENUMのコンテンツのリストを簡単に取得することはできません。ルックアップテーブルを使用できます。さらに重要なのは、Dimension-Factクエリを実行するためのベクトルがあり、大きなファクトテーブルとGROUPBYから選択する必要がないことです。



    1. MySQLで英数字を含む行を返す2つの方法

    2. MountainLionPostgresが接続できませんでした

    3. 同じ値を持つ行の数を数える

    4. ユニバーサル文字のテーブル照合の選択