[firebase-br] OFF - Opinião sobre tabelas...

Arno arno35 em gmail.com
Sex Maio 26 16:09:09 -03 2006


Olá pessoal,

tenho acompanhado a lista a algum tempo e tenho percebido que esta é uma
lista muito boa, talvez uma das melhores do país.

Por isso, venho pedir uma ajuda sobre modelagem de banco de dados, peguei um
sistema para dar manutenção, ele está rodando o Delphi 6 + zeoslib 5.5 +
mysql 4.0.

Estou mudando todo o banco, tornando ele um banco relacional, porque da
forma como se encontra hoje, ele não tem integridade de chave entre as
tabelas.

Para isso estou utilizando o Delphi 6 + zeoslib 6.1 + firebird 1.53.

Mas o meu problema está no seguinte:

Tem duas tabelas em uma parte semi-contábil do sistema, que controlam os
títulos a pagar e a receber.

Hoje, a cada novo título lançado no sistema, é feito automaticamente o
número de lançamentos correspondentes a quantidade de parcelas, por exemplo:
se um título tiver parcela única, será efetuado um único lançamento dentro
do banco mas, se um título tiver duas ou mais parcelas, é feito o lançamento
do mesmo título tantas vezes quanto forem o número de parcelas.

Para efetuar a baixa, o sistema escreve em outra tabela, uma cópia do título
digitado acima, e faz a baixa do mesmo, ou seja, ele está reescrevendo o
registro do lançamento e anexando alguns campos, como data da baixa e
outros...

Basicamento o desenho das tabelas são estes:

=====================================================
tabela titulos
id               -> chave primária
idclifor      -> chave da tabela de clientes/fornecedores
nrdoc        -> nr do documento
datalanc  -> data do lançamento
tipodoc     -> tipo do documento
valor          -> valor da parcela
valordoc   -> valor total do documento
nrparcela -> número da parcela
qparcela  -> quantidade de parcelas

tabela de movimentação
id                -> chave primária
idclifor       -> chave da tabela de clientes/fornecedores
nrdoc         -> número do documento
databaixa  -> data da baixa do documento
tipodoc      -> tipo do documento
valor           -> valor da parcela
nrparcela  -> número da parcela
========================================================

Entre outros campos, estes são os principais.

Bom, montei um modelo relacional no qual o título era lançado uma única vez
dentro da tabela de títulos, não havendo mais a repetição de campos e
registros, e de acordo com a quantidade de parcelas era feito o lançamento
dentro da tabela de movimentação, aguardando assim a data da baixa com o
respectivo número da parcela, deste modo o cliente pode escolher qual
parcela pagar, como ainda é feito hoje. Ou seja, a tabela de movimentação
ficou com uma chave estrangeira da tabela de títulos e sem os campos
repetidos.

Na semana passada percebí um problema neste sistema que estou montando. Como
a quantidade de parcelas determina o número de lançamentos dentro da tabela
de movimentação, o sistema não comporta pagamento de parcelas parciais, ou
seja, se uma parcela for de R$ 300,00 e for efetuado o pagamento de somente
R$ 200,00, ficam sobrando R$ 100,00 que não tenho aonde colocá-lo. E isso é
uma prática comum para este cliente.

Bom, tenho que repensar estas duas tabelas novamente, e estou precisando de
uma ajuda, se alguém tiver uma idéia ou sugestão de como resolver o problema
e quiser compartilhá-lha, pode entrar em contato em pvt comigo.
arno35 em gmail.com

Agradeço a todos que perderam tempo lendo este jornal...

Arno.



Mais detalhes sobre a lista de discussão lista