I have a sales order FACT table called SalesOrder and has 20 million rows. I have created a junk dimension to store columns such as OrderType and OrderStatus and this degenerate dimension has less than 20 rows. The SalesOrder fact table is loaded from Orders table in our ERP system and the natural key is OrderID. There are a few other dimensions such as Customer and Date.
My question is – should I store natural key in the fact table? I know it is not a good idea, but how should I insert new rows or update existing rows during ETL? Please advise and thanks for help.