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?

questionAnswers(2)

yourAnswerToTheQuestion