Estou projetando meu primeiro esquema de comércio eletrônico. Eu tenho lido sobre o assunto há um tempo e estou um pouco confuso sobre a relação entre um order_line_iteme umproduct
A productpode ser comprada. Tem vários detalhes, mas o mais importante é unit_price.
Um order_line_itempossui uma chave estrangeira para o product_idadquirido, o quantityadquirido e unit_priceno momento em que o cliente comprou o produto.
A maior parte do que li diz que o unit_priceon order_line_itemdeve ser explicitamente adicionado (ou seja, não referenciado pelo product_id). Faz sentido, pois a loja poderá alterar o preço no futuro, o que atrapalharia os relatórios de pedidos, rastreamento, integridade etc.
O que eu não entendo é por que salvar diretamente o unit_pricevalor no arquivo order_line_item?
Não seria melhor criar uma tabela de auditoria / histórico que documenta a unit_pricealteração de uma product?
Quando um order_line_itemé criado, a chave estrangeira da product_audittabela é adicionada e o preço pode ser recuperado (por referência) a partir daí.
Parece-me que há muitos aspectos positivos em usar essa abordagem (menos duplicação de dados, histórico de alterações de preços, etc.), então por que não é usada com mais frequência? Não encontrei um exemplo de esquema de comércio eletrônico que use essa abordagem. Estou perdendo alguma coisa?
UDPATE: Parece que minha pergunta está relacionada à dimensão que muda lentamente . Ainda estou confuso, pois a Slowly Changing Dimension está relacionada ao data warehouse e aos OLAPs. Portanto, os tipos de dimensão de alteração lenta podem ser aplicados ao meu principal banco de dados de processos de transações comerciais (OLTP)? Gostaria de saber se estou misturando muitos conceitos, gostaria muito de receber algumas orientações.