Du har ett många-till-många-förhållande mellan fastigheter och bekvämligheter. För att modellera detta behöver du en separat tabell, inte ett variabelt antal kolumner.
Det finns en tabell som lagrar dina fastigheter.
INSERT INTO property (id, address, square_footage...) VALUES (111, '123 Main St', 1234...)
Det finns ett bord som lagrar alla möjliga bekvämligheter.
INSERT INTO amenities (id, type, description) VALUES (222, 'Unit Features', 'Air Conditioning');
För varje bekvämlighet en fastighet har, infoga en rad i tabellen som relaterar dessa två:
INSERT INTO property_amenitities (property_id, amenity_id) VALUES (111, 222);
När du vill veta vilka bekvämligheter en specifik fastighet har, SELECT
alla rader från den här tabellen för egenskapens nyckel. När du vill skriva ut kryssrutor för alla bekvämligheter, SELECT
från amenities
tabell och gör en LEFT OUTER JOIN
till property_amenities
tabell. Dessa rader med nollvärden från property_amenities
tabell är de rutor som är avmarkerade.
Relaterad läsning . Du bör hämta en bok om relationsdatabaser från dina lokala BORDERS innan de går i konkurs :)