Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ist der beste Weg, um Kontrollkästchenwerte in der MySQL-Datenbank zu speichern?

Sie haben eine Viele-zu-Viele-Beziehung zwischen Eigenschaften und Annehmlichkeiten. Um dies zu modellieren, benötigen Sie eine separate Tabelle, keine variable Anzahl von Spalten.

Es gibt eine Tabelle, die Ihre Eigenschaften speichert.

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

Es gibt einen Tisch, der alle möglichen Annehmlichkeiten speichert.

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

Fügen Sie für jede Annehmlichkeit einer Immobilie eine Zeile in die Tabelle ein, die sich auf diese beiden bezieht:

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

Wenn Sie wissen möchten, welche Ausstattung ein bestimmtes Objekt hat, einfach SELECT alle Zeilen aus dieser Tabelle für den Schlüssel dieser Eigenschaft. Wenn Sie Kontrollkästchen für alle Annehmlichkeiten ausdrucken möchten, SELECT aus den amenities Tabelle und führen Sie einen LEFT OUTER JOIN durch zu den property_amenities Tisch. Diese Zeilen mit Nullwerten aus property_amenities Tabelle sind die Kästchen, die nicht angekreuzt sind.

Verwandte Lektüre . Sie sollten sich ein Buch über relationale Datenbanken von Ihren lokalen BORDERS besorgen, bevor sie ihr Geschäft einstellen :)