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

不明な長さの配列を格納する

    column1を使い始めた場合 、column2 テーブル上-デザインに欠陥がある可能性があります。代わりに、個別のテーブルを作成する必要があります-各columnX 独自の行を取得します。同じテーブルに複数の繰り返し列がある場合は、(ほぼ)常に別のテーブルを使用することをお勧めします。

    そうすることで、列にカンマ区切りの値を格納することを回避し、突然別の値を導入する必要がある場合にコード/クエリを壊すことを回避しますcolumn{X+1} -代わりに、必要な数の入力値を含めることができます。

    あなたにとって、それはland_owner_inputと呼ばれる新しいテーブルのようなものになります 、値があります(columnXに入力します) )、およびland_ownerの行への参照 値が属すること。

    典型的なデザインパターンは次のようになります。

    CREATE TABLE land_owner_input (
        land_owner_input_id INT(11) AUTO_INCREMENT
        land_owner_id INT(11), 
        land_owner_input_value VARCHAR(MAX)
    );
    

    land_owner_id 新しいテーブルでは、参照するIDとまったく同じタイプとサイズである必要があります。

    land_owner_id間に外部キー制約を作成することもできます およびland_ownerのID データの整合性を確保するためのテーブル。

    新しいテーブルを取得したら、LEFT JOINを使用してそれらを一緒にクエリできます (または通常のJOIN 入力値がある場合にのみ行を返したい場合)。

    SELECT *
    FROM land_owner AS lo
    LEFT JOIN land_owner_input AS loi
        ON loi.land_owner_id = lo.land_owner_id 
    


    1. レプリケーションに使用されるEBSボリュームのスナップショット

    2. MySQLとの明確な結合を行う方法

    3. MacにコマンドラインMySQLクライアントをインストールするにはどうすればよいですか?

    4. PostgreSQLのフォールトトレランスの進化:タイムトラベル