Zacząłem się zastanawiać nad pewnym rozwiązaniem związanym z zarządzaniem danymi przy relacji wiele do wielu.
Przy okazji chciałbym poprosić o radę - jakiej struktury tabel lepiej użyć.
Najpierw to drugie.
Powiedzmy, że mam tabelę produkty: id | nazwa | opis | itd.
Produkt dodatkowo może mieć nałożone parametry sklepowe tj. promocja, nowość, wyprzedaż, itp.
I pytanie - jakiej struktury użyć w tym przypadku?
Rozwiązanie 1 łączące 3 tabele (produkt, parametr, produkt_parametr)
Tabela parametry:
id | parametr
```````````
1 | promocja
2 | nowość
itd.
Tabela produkt:
(pomińmy...)
Tabela produkt_paramtr
id_parametr | id_produkt
Dzięki takiej konstrukcji administrator sam może dodawać atrybuty i pozwiązywać z produktami i jest to chyba najlepsza opcja.
Druga to taka, aby zrobić wszystko w tabeli produkt i w razie jakby administrator chciał to mu się dorabia...
A teraz główne pytanie:
Czy jest w Doctrine opcja aby mimo tabel łączonych wiele-wiele używać konstrukcji (np. przy edycji):
$produkt->promocja = true; $produkt->save();
I w tym momencie doda do tabeli produkt_parametr odpowiedni wpis. A w przypadku:
$produkt->promocja = false; $produkt->nowosc = true; $produkt->save();
Usunie powiązanie z promocją a doda z nowością.