Witajcie.

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):

  1. $produkt->promocja = true;
  2. $produkt->save();

I w tym momencie doda do tabeli produkt_parametr odpowiedni wpis. A w przypadku:

  1. $produkt->promocja = false;
  2. $produkt->nowosc = true;
  3. $produkt->save();


Usunie powiązanie z promocją a doda z nowością.