Projektuję mój pierwszy schemat eCommerce. Od jakiegoś czasu czytam ten temat i jestem trochę zdezorientowany relacjami między order_line_itemaproduct
productPuszki zostały zakupione. Ma różne szczegóły, ale najważniejsze jest unit_price.
order_line_itemPosiada klucz obcy do product_idzakupiona, to quantityzakupiono i unit_priceprzy momencie klient zakupił produkt.
Większość z tego co czytałem, mówi, że unit_pricena order_line_itemnależy wyraźnie dodanej (czyli nie poprzez odwołanie product_id). Ma to sens, ponieważ sklep może w przyszłości zmienić cenę, co zepsuje raporty zamówień, śledzenie, integralność itp.
Nie rozumiem tylko, dlaczego bezpośrednio zapisać unit_pricewartość order_line_item?
Czy nie byłoby lepiej stworzyć tabelę audytu / historii, która dokumentuje unit_pricezmianę product?
Po utworzeniu an dodawany jest order_line_itemklucz obcy product_audittabeli i stamtąd można pobrać cenę (przez odniesienie).
Wydaje mi się, że stosowanie tego podejścia ma wiele zalet (mniej powielania danych, historii zmian cen itp.), Więc dlaczego nie jest częściej stosowane? Nie spotkałem się z przykładem schematu eCommerce, który wykorzystuje to podejście, czy coś mi brakuje?
UDPATE: Wygląda na to, że moje pytanie dotyczy powolnie zmieniającego się wymiaru . Nadal jestem zdezorientowany, ponieważ powolnie zmieniający się wymiar dotyczy hurtowni danych i OLAP. Czy zatem w mojej głównej bazie danych procesów biznesowych (OLTP) można zastosować typy Slowy Changing Dimension? Zastanawiam się, czy pomieszam wiele pojęć, Byłbym bardzo wdzięczny za pewne wskazówki.