Tiene una relación de muchos a muchos entre propiedades y servicios. Para modelar esto, necesita una tabla separada, no un número variable de columnas.
Hay una tabla que almacena sus propiedades.
INSERT INTO property (id, address, square_footage...) VALUES (111, '123 Main St', 1234...)
Hay una mesa que almacena todos los servicios posibles.
INSERT INTO amenities (id, type, description) VALUES (222, 'Unit Features', 'Air Conditioning');
Para cada servicio que tiene una propiedad, inserte una fila en la tabla que relacione estos dos:
INSERT INTO property_amenitities (property_id, amenity_id) VALUES (111, 222);
Cuando desee saber qué servicios tiene una propiedad específica, simplemente SELECT
todas las filas de esta tabla para la clave de esa propiedad. Cuando desee imprimir casillas de verificación para todos los servicios, SELECT
de las amenities
table y haz un LEFT OUTER JOIN
a las property_amenities
mesa. Esas filas con valores nulos de property_amenities
tabla son las casillas que no están marcadas.
Lecturas relacionadas . Debería obtener un libro sobre bases de datos relacionales de sus FRONTERAS locales antes de que cierren :)