sql >> Databasteknik >  >> RDS >> Mysql

Vad är det bästa sättet att lagra checkbox-värden i MySQL-databasen?

Du har ett många-till-många-förhållande mellan fastigheter och bekvämligheter. För att modellera detta behöver du en separat tabell, inte ett variabelt antal kolumner.

Det finns en tabell som lagrar dina fastigheter.

INSERT INTO property (id, address, square_footage...) VALUES (111, '123 Main St', 1234...)

Det finns ett bord som lagrar alla möjliga bekvämligheter.

INSERT INTO amenities (id, type, description) VALUES (222, 'Unit Features', 'Air Conditioning');

För varje bekvämlighet en fastighet har, infoga en rad i tabellen som relaterar dessa två:

INSERT INTO property_amenitities (property_id, amenity_id) VALUES (111, 222);

När du vill veta vilka bekvämligheter en specifik fastighet har, SELECT alla rader från den här tabellen för egenskapens nyckel. När du vill skriva ut kryssrutor för alla bekvämligheter, SELECT från amenities tabell och gör en LEFT OUTER JOIN till property_amenities tabell. Dessa rader med nollvärden från property_amenities tabell är de rutor som är avmarkerade.

Relaterad läsning . Du bör hämta en bok om relationsdatabaser från dina lokala BORDERS innan de går i konkurs :)



  1. Ser fram emot PGConf India 2017

  2. MySQL -- Går ihop mellan databaser på olika servrar med Python?

  3. Hur tar man bort från flera tabeller i MySQL?

  4. Stöder din Salesforce-drivrutin bulkåtgärder?