プロパティとアメニティの間には多対多の関係があります。これをモデル化するには、可変数の列ではなく、個別のテーブルが必要です。
プロパティを格納するテーブルが1つあります。
INSERT INTO property (id, address, square_footage...) VALUES (111, '123 Main St', 1234...)
考えられるすべての設備を格納するテーブルが1つあります。
INSERT INTO amenities (id, type, description) VALUES (222, 'Unit Features', 'Air Conditioning');
プロパティが持つアメニティごとに、次の2つに関連する1つの行をテーブルに挿入します。
INSERT INTO property_amenitities (property_id, amenity_id) VALUES (111, 222);
特定の物件のアメニティを知りたい場合は、SELECT
そのプロパティのキーのこのテーブルのすべての行。すべてのアメニティのチェックボックスを印刷する場合は、SELECT
amenities
から テーブルを作成し、LEFT OUTER JOIN
を実行します property_amenities
へ テーブル。 property_amenities
からのnull値を持つ行 表はチェックされていないボックスです。
関連資料 。リレーショナルデータベースが廃業する前に、地元のボーダーから本を入手する必要があります:)