Você tem uma relação muitos-para-muitos entre propriedades e comodidades. Para modelar isso, você precisa de uma tabela separada, não de um número variável de colunas.
Há uma tabela que armazena suas propriedades.
INSERT INTO property (id, address, square_footage...) VALUES (111, '123 Main St', 1234...)
Há uma tabela que armazena todas as comodidades possíveis.
INSERT INTO amenities (id, type, description) VALUES (222, 'Unit Features', 'Air Conditioning');
Para cada comodidade que uma propriedade possui, insira uma linha na tabela relacionando essas duas:
INSERT INTO property_amenitities (property_id, amenity_id) VALUES (111, 222);
Quando você quiser saber quais comodidades uma propriedade específica possui, basta
SELECT
todas as linhas desta tabela para a chave dessa propriedade. Quando você quiser imprimir caixas de seleção para todas as comodidades, SELECT
das amenities
table e faça um LEFT OUTER JOIN
para as property_amenities
tabela. Essas linhas com valores nulos de property_amenities
table são as caixas que estão desmarcadas. Leitura relacionada . Você deve pegar um livro sobre bancos de dados relacionais de suas FRONTEIRAS locais antes que elas fechem :)