Aufzählung in DB abspeichern?

Gifty43

Erfahrenes Mitglied
Hallo Zusammen,

Ich habe folgendes Problem:

Eine Tabelle "_artikel" und die andere "_brands" (Marken). Ich habe bereits das Script mit dem ich Artikel erzeugen kann. Bei den Artikeln gibt es jetzt aber eine Aufzählung von den verschiedenen Marken. Diese sollte ich nun mittels Checkboxen im Artikelscript einschalten können. Nur wie speichere ich das am besten ab?

Soll ich jetzt am besten eine Kreuztabelle erstellen oder wäre eine Aufzählung der Marken-ID's in einer "brands" Spalte der Tabelle "_artikel" besser geeignet (1;3;4;...)? Ich wüsste bei beidem nicht, wie ich es lösen könnte.

Wenn also jemand schonmal Erfahrung mit sowas gemacht hat, wäre ich um eine kurze Erklärung froh.

Besten Dank und einen schönen Sonntag.
 
Also wenn ich dich richtig verstanden hab, willst du für jeden Artikel ein Brand abspeichern?
Ich würde das wirklich so machen, dass du in der Tabelle "artikel" ein Feld für die Marke machst und dort die jeweilige id der Marke einträgst...
 
Dann würde ich entweder ein Feld in der Artikel-Tabelle machen, welches die ids der Brands mit Semikolon getrennt speichert oder du machst eine weitere Tabelle, welche nur die Artikel IDs speichert und macht jeweils einen Datensatz für die Brands.
Beispiel:

Artikel 1 hat in der Artikel-Tab die ID 1
dieser Artikel gehört zu den Marken 6 und 7

Bei Variante 1 hast du in der Artikel-Tab ein Feld "Brand" und setzt es für Artikel 1 auf "6;7" - anschließend liest du dieses Feld aus, splittest es und lässt dir die Marken auslesen.

Bei Variante 2 hast du eine weitere Tabelle zB. ArtikelBrand und machst dort zwei Datensätze für den Artikel 1 rein:
Artikel: 1 Brand: 6
Artikel: 1 Brand: 7

Ich hoffe, du hast verstanden, wie ich es meine...
 
Bei einer n:m-Beziehung ist eine zusätzliche Tabelle immer sinnvoller, da die Daten atomar gehalten werden sollte (also keine Aufzählungen).
 
OK dann werde ich die Lösung mit einer Extra-Tabelle realisieren.

Doch wie mache ich das am besten bezüglich dem Eintragen?
Wenn man den Artikel editiert sollen die zuvor ausgewählten Brands auch wieder ausgewählt sein.
 
Also gut, folgendes noch:

Im edit-File habe ich folgende Script, welches mir die Checkboxen ausgibt:
PHP:
$brands_q = mysql_query("SELECT * FROM test_brands WHERE catid = '$catid'");
while($brands = mysql_fetch_array($brands_q)) {
<input name="'.$brands["id"].'" type="checkbox" value="'.$brands["id"].'"> '.$brands["name"].'
}

Da immer wieder Änderungen in der "_brands" Tabelle vorgenommen werden, habe ich ja dementsprechend manchmal weitere/weniger checkboxen.

Wie kann ich jetzt im verify-File diese Variablen ebenfalls dynamisch auslesen und dann in die Datenbank eintragen?

Besten Dank für eure Hilfe
 
Zurück