Du har et mange-til-mange forhold mellem ejendomme og faciliteter. For at modellere dette skal du bruge en separat tabel, ikke et variabelt antal kolonner.
Der er én tabel, som gemmer dine ejendomme.
INSERT INTO property (id, address, square_footage...) VALUES (111, '123 Main St', 1234...)
Der er ét bord, som gemmer alle mulige faciliteter.
INSERT INTO amenities (id, type, description) VALUES (222, 'Unit Features', 'Air Conditioning');
For hver bekvemmelighed en ejendom har, indsæt en række i tabellen, der relaterer disse to:
INSERT INTO property_amenitities (property_id, amenity_id) VALUES (111, 222);
Når du vil vide, hvilke faciliteter en specifik ejendom har, skal du bare SELECT
alle rækker fra denne tabel for egenskabens nøgle. Når du vil udskrive afkrydsningsfelter for alle faciliteter, SELECT
fra amenities
tabel og lav en LEFT OUTER JOIN
til property_amenities
bord. Disse rækker med nulværdier fra property_amenities
tabel er de felter, der ikke er markeret.
Relateret læsning . Du bør hente en bog om relationelle databaser fra dine lokale BORDERS, før de går konkurs :)