sql >> Database >  >> RDS >> Mysql

Wat is de beste manier om Checkbox-waarden op te slaan in MySQL Database?

U heeft een veel-op-veel relatie tussen woningen en voorzieningen. Om dit te modelleren heb je een aparte tabel nodig, geen variabel aantal kolommen.

Er is één tabel waarin uw eigendommen worden opgeslagen.

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

Er is één tafel waarin alle mogelijke voorzieningen zijn opgeborgen.

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

Voor elke voorziening die een eigenschap heeft, voegt u een rij in de tabel in die deze twee met elkaar in verband brengt:

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

Als je wilt weten welke voorzieningen een specifieke woning heeft, hoef je alleen maar SELECT alle rijen uit deze tabel voor de sleutel van die eigenschap. Als u selectievakjes voor alle voorzieningen wilt afdrukken, SELECT van de amenities tabel en doe een LEFT OUTER JOIN naar de property_amenities tafel. Die rijen met null-waarden uit de property_amenities tabel zijn de vakjes die niet zijn aangevinkt.

Gerelateerde literatuur . Je zou een boek over relationele databases moeten halen bij je lokale GRENS voordat ze failliet gaan :)



  1. Database-ontwerp:het rekeningsaldo berekenen

  2. Hoe de volledige zoekopdracht te zien van PROCESSLIST TOON

  3. Hoe een databasewaarde in een hyperlink door te geven met behulp van PHP + HTML

  4. Een MySQL-database exporteren naar SQLite-database