Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Qual é a melhor maneira de armazenar valores de caixa de seleção no banco de dados MySQL?


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