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

SQL 1 つの列を複数の可変列に分割する方法

    このデータを別々の列に分割することは、非常に良い出発点です (カンマ区切りの値は異端です)。ただし、「可変数のプロパティ」は通常、1 対 1 としてモデル化する必要があります。多くの関係 .

    CREATE TABLE main_entity (
      id INT PRIMARY KEY,
      other_fields INT
    );
    
    CREATE TABLE entity_properties (
      main_entity_id INT PRIMARY KEY,
      property_value INT,
      FOREIGN KEY (main_entity_id) REFERENCES main_entity(id)
    );
    

    entity_properties.main_entity_id 外部キー です main_entity.id へ .

    おめでとう、あなたは正しい道を歩んでいます。これは 正規化 と呼ばれます . 第 1 正規形 に到達しようとしています。

    ただし、これらのプロパティは、よく似た性質 (つまり、すべての電話番号や住所など) を持つ必要があることに注意してください。ダークサイド (別名 ) に陥らないでください。 Entity-Attribute-Value アンチパターン )、すべてのプロパティを同じテーブルに入れたくなります。複数のタイプの属性を識別できる場合は、各タイプを別のテーブルに保存してください。



    1. データベースからのチャートデータの表示

    2. SQL Server 2008 で偶数行または奇数行のみを表示する方法は?

    3. MySQLで初期値と自動インクリメントを設定するにはどうすればよいですか?

    4. スペルミスのあるデータを補正できるMySQL検索を作成するにはどうすればよいですか?