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