Encoder: Entscheidungshilfe zur Datenbank-Struktur

Beitrag lesen

Und bei der Auflistung kann ich dann die Abfrage mit cat like "%b%" or cat like "%c%" ... machen.

Das ist unperformant und absolut unschön.

Die zweite Möglichkeit wäre bei jedem Produkt zusätzlich 30 Spalten für die Kategorien anzulegen und dann z.B. die ausgewählten Kategorien auf 1 zu setzen. Und bei der Auflistung dann mit "where cat_a=1 or cat_b=1 ..."

Wenn es mal mehr werden, hast du hier ein Problem. Du hast eigentlich jetzt auch schon eines, denn so eine Query zu verfassen ist nichts worauf man stolz sein sollte ;-)

Da ich aber gelesen habe, dass es nicht selten vorkommt, dass Tabellen aus 100 oder mehr Spalten bestehen

Also bei mir kam das noch nie vor und ich würde in diesem Fall (der sich noch nie ergeben hat) alles tun um das zu vermeiden.