Między nieruchomościami a udogodnieniami istnieje relacja „wiele do wielu”. Aby to zamodelować, potrzebujesz oddzielnej tabeli, a nie zmiennej liczby kolumn.
Jest jedna tabela, w której przechowywane są Twoje właściwości.
INSERT INTO property (id, address, square_footage...) VALUES (111, '123 Main St', 1234...)
Jest jeden stół, który przechowuje wszystkie możliwe udogodnienia.
INSERT INTO amenities (id, type, description) VALUES (222, 'Unit Features', 'Air Conditioning');
Dla każdego udogodnienia, które ma nieruchomość, wstaw jeden wiersz do tabeli, odnoszący się do tych dwóch:
INSERT INTO property_amenitities (property_id, amenity_id) VALUES (111, 222);
Jeśli chcesz wiedzieć, jakie udogodnienia ma konkretna nieruchomość, po prostu SELECT wszystkie wiersze z tej tabeli dla klucza tej właściwości. Jeśli chcesz wydrukować pola wyboru dla wszystkich udogodnień, SELECT z amenities tabeli i wykonaj LEFT OUTER JOIN do property_amenities stół. Te wiersze z wartościami null z property_amenities tabela to pola, które nie są zaznaczone.
Powiązane czytanie . Powinieneś odebrać książkę o relacyjnych bazach danych z lokalnych GRANIC, zanim wyjdą z biznesu :)