Mam dwie tabele: produkty i produkty w zamówieniu.
Dla każdego produktu potrzebuję dodać pewien atrybut, którego dane będą przechowywane w osobnej tabeli o nazwie atrybut.
Po złożeniu zamówienia następują wpisy do tabeli produkty w zamówieniu na zasadzie powiązania z tabelą produkty.
Mój atrybut może zostać zmieniony po wykonaniu zamówienia, wówczas jego aktualizacja następuje jedynie w powiązaniu z tabelą produkty, produkty w zamówieniu nie ulegają zmianie.
Mam na to dwie koncepcje:
- Zawarcie atrybutu w jednej tabeli. Jednak boje się o to czy w przyszłości nie będzie kłopotliwe jej przeszukiwanie. Tabela z zamówieniami będzie szybko rosnąć, ponieważ dziennie tysiąc klientów może złożyć zamówienia a każdy klient może zamówić kilka różnych produktów.
- Rozbicie na dwie tabele. Minusem jest redundancja danych, plusem przeszukiwanie ale liczba produktów w stosunku do liczby produktów w zamówieniu nie będzie stanowiła zbyt dużą część (przykładowo po roku może być 2-3 miliony produktów w zamówieniu a liczba produktów w sklepie ok. 100-200 tys.).
Osobiście kierowałbym się jednak ku rozwiązaniu numer 1, proszę o opinię, wskazówki, wzorce czy można to bardziej znormalizować?