sql >> Databáze >  >> RDS >> Mysql

Jaký je nejlepší způsob ukládání hodnot zaškrtávacích políček v databázi MySQL?

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



  1. Jak vyřešit ORA-06512 na řádku č

  2. Uzamkněte tabulku mysql pomocí php

  3. Co znamená dvojtečka:dělat v dotazu SQL?

  4. Jak generovat grafy a tabulky z databáze mysql v php