yo,
-Ein Produkt kann keine, eine oder mehrere Optionen haben.
ich denke mal, du meinst damit auch, dass eine option auch von mehreren produkten genutzt wird. ansonsten ist es eine 1:n beziehung und du kannst dir die beziehungstabelle tbl_products_options sparen.
warum hat die beziehungstabelle eine extra id und nicht einen zusammengesetzten schlüssel über products_id und options_id ?
-In einer Kategorie gibt es Produkte und Optionen in den verschiedenen Stati
das verwirrt mich. in einer kategorie gibt es mehrere produkte. die optionen sind aber sicherlich doch den produkten zuzuordenen und nicht der kategorie. was ist ein stati ?
tbl_states ist überflüssig. dafür brauchst du keine extra tabelle machen, wenn sowie so nur der name und eine id drinne stehen. der name sollt eindeutig sein und wenn es nur einen wert in der tabelle gibt, reicht es ihn in der produkte tabelle zu lassen. warum ist der in der options-tabelle ?
was soll die categorie_id in der options-tabelle bewirken ? es sollte reichen, wenn sie in der produkte-tabelle ist. was macht die stati_id in der options-tabelle ?
Ilja