Mezi vlastnostmi a vybavením máte vztah mnoho k mnoha. Chcete-li to modelovat, potřebujete samostatnou tabulku, nikoli proměnný počet sloupců.
Existuje jedna tabulka, která ukládá vaše vlastnosti.
INSERT INTO property (id, address, square_footage...) VALUES (111, '123 Main St', 1234...)
K dispozici je jeden stůl, kde je uloženo veškeré vybavení.
INSERT INTO amenities (id, type, description) VALUES (222, 'Unit Features', 'Air Conditioning');
Pro každé vybavení, které nemovitost má, vložte do tabulky jeden řádek týkající se těchto dvou:
INSERT INTO property_amenitities (property_id, amenity_id) VALUES (111, 222);
Pokud chcete vědět, jaké vybavení má konkrétní nemovitost, stačí SELECT
všechny řádky z této tabulky pro klíč dané vlastnosti. Pokud chcete vytisknout zaškrtávací políčka pro veškeré vybavení, SELECT
z amenities
tabulku a proveďte LEFT OUTER JOIN
do property_amenities
stůl. Řádky s hodnotami null z property_amenities
tabulka jsou políčka, která nejsou zaškrtnuta.
Související informace . Než přestanou fungovat, měli byste si vyzvednout knihu o relačních databázích na místních HRANICÍCH :)