Devo desnormalizar as tabelas Empréstimos, Compras e Vendas em uma tabela?
Com base nas informações que forneci abaixo, você pode me dar sua opinião sobre se é uma boa idéia desnormalizar tabelas separadas em uma tabela que contém diferentes tipos de contratos? .. Quais são os prós / contras? .. Alguém já tentou isso antes? .. Os sistemas bancários usam um CIF (arquivo de informações do cliente) [mestre], onde os clientes podem ter diferentes tipos de contas, CD's, hipotecas etc. e usam códigos de transação [tipos], mas eles os armazenam em uma tabela?
Tenho tabelas separadas para transações de empréstimos, compras e vendas. As linhas de cada uma dessas tabelas são unidas ao cliente correspondente da seguinte maneira:
customer.pk_id SERIAL = loan.fk_id INTEGER;
= purchase.fk_id INTEGER;
= sale.fk_id INTEGER;
Como existem muitas propriedades comuns entre essas tabelas, que giram em torno da mesma mercadoria: penhorada, comprada e vendida, experimentei consolidá-las em uma tabela chamada "Contratos" e adicionei a seguinte coluna:
Contracts.Type char(1) {L=Loan, P=Purchase, S=Sale}
Cenário:
Um cliente inicialmente penhora a mercadoria, faz alguns pagamentos de juros e decide que quer vender a mercadoria para a loja de penhores, que depois coloca a mercadoria no Inventário e, eventualmente, a vende para outro cliente.
Eu projetei uma tabela genérica onde, por exemplo:
Contracts.Capital DECIMAL(7,2)
em um contrato de empréstimo, ele mantém o valor principal do peão, em uma compra mantém o preço de compra, em uma venda mantém o preço de venda.
Esse design é uma boa ideia ou devo mantê-los separados?