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