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 :)