I'm working on financial data mart structure. And I'm having some doubts on whats the better approach to do so. The source system database,Dynamics AX 2009, has three tables for customer transaction. One table for open transactions, where the Customer still needs to pay for service/product; One table for settle transactions, where it holds what the customer have already paid; Finally a table that have all customers transactions, holds transactions from open to settle and also others transactions as customer to bank or ledger accounts.
I thought in two options, first I will maintain a fact table representing the three table, fact for open transactions, fact for any customer transaction and fact for settle transaction. Second is to create a single fact to hold all transactions, to do so I would have to do a full join on three tables. I'm not sure on both approaches, as the first seems to copy tables from production and create the proper dimension. On the Second one I would create a massive fact table, that where data would constantly change, as open transaction are delete on source system when they are settle.
Another doubt, should i create a fact with scd(slowly changing dimension) structure to maintain history data?(star date, end date , flag)