Usuário com melhor resposta
Ajuda na estruturação da Base de Dados "sql server 2005"

Pergunta
-
Boa Noite
Estou a estruturar uma base de dados mas como ainda nao me tinha aparecido nada do genero pra eu fazer, começaram as duvidas as seguir...
O meu problema é na tabela Clientes, o programa que estou a desenvolver vai gerir pagamento de vencimento mensal...
Entao a minha duvida está no que diz respeito aos campos "Vencimento Base", "Subsidido de alimentação", "Segurança Social".
Onde é que estes campos devem ficar ? Na tabela Clientes?
O Cliente que me encomendou o programa trouxe-me um recibo de vencimento pra servir de referencia que é este do link abaixo ..
http://img293.imageshack.us/my.php?image=recibowe6.jpg
Agora eu nao estou a perceber de onde vêm os codigos que sao atribuidos as estes campos....
Espero ter sido claro com a minha duvida
Um Abraço
Respostas
-
Bom Dia,
Não acho que esses dados devam ficar na tabela de clientes. Os clientes terão vários pagamentos com valores diferentes (o valor do vencimento base irá se alterar mas o nome do Cliente permanecerá o mesmo) e se colocarmos esses dados na tabela de clientes estaremos violando a 1FN que diz que os atributos devem ser atômicos e livres dos grupos de repetição. Também não sei se Clientes seria o melhor nome já que a julgar pelos campos, me parecem mais ser empregados do que Clientes.
Eu sugiro as seguintes tabelas:
TblFuncionarios
Coloque aqui os dados cadastrais dos funcionários como Nome, CPF, Data de Nascimento, etc.
(IDFuncionario, Nome, CPF, <Outros Campos>)
TblRubricas
Coloque aqui as rubricas que aparecem no recibo de vencimento. Aqui que devem constar os campos que você citou. Não coloque os valores nessa tabela, apenas os nomes.
(IDRubrica, NomeRubrica, <Outros Campos>)
TblRubricasFuncionarios
Coloque aqui uma FK para a tabela de Funcionários, uma FK para a tabela de Rubricas e uma coluna para o valor vigente daquela rubrica para aquele funcionário. Se houver um desconto padrão coloque-o aqui também.
(IDFuncionario, IDRubrica, ValorVigente)
TblRubricasPagas
Coloque aqui a FK para RubricasFuncionarios e os valores pagos juntamente com os descontos. Inicialmente os valores pagos serão iguais aos valores vigentes, mas com o tempo isso ficará diferente (os valores vigentes irão se alterar e não podemos alterar os valores pagos, por isso duas tabelas).
(IDFuncionario, IDRubrica, ValorPago, Desconto)
Bom, de início eu acho que dá.
[ ]s,
Gustavo
Todas as Respostas
-
Bom Dia,
Não acho que esses dados devam ficar na tabela de clientes. Os clientes terão vários pagamentos com valores diferentes (o valor do vencimento base irá se alterar mas o nome do Cliente permanecerá o mesmo) e se colocarmos esses dados na tabela de clientes estaremos violando a 1FN que diz que os atributos devem ser atômicos e livres dos grupos de repetição. Também não sei se Clientes seria o melhor nome já que a julgar pelos campos, me parecem mais ser empregados do que Clientes.
Eu sugiro as seguintes tabelas:
TblFuncionarios
Coloque aqui os dados cadastrais dos funcionários como Nome, CPF, Data de Nascimento, etc.
(IDFuncionario, Nome, CPF, <Outros Campos>)
TblRubricas
Coloque aqui as rubricas que aparecem no recibo de vencimento. Aqui que devem constar os campos que você citou. Não coloque os valores nessa tabela, apenas os nomes.
(IDRubrica, NomeRubrica, <Outros Campos>)
TblRubricasFuncionarios
Coloque aqui uma FK para a tabela de Funcionários, uma FK para a tabela de Rubricas e uma coluna para o valor vigente daquela rubrica para aquele funcionário. Se houver um desconto padrão coloque-o aqui também.
(IDFuncionario, IDRubrica, ValorVigente)
TblRubricasPagas
Coloque aqui a FK para RubricasFuncionarios e os valores pagos juntamente com os descontos. Inicialmente os valores pagos serão iguais aos valores vigentes, mas com o tempo isso ficará diferente (os valores vigentes irão se alterar e não podemos alterar os valores pagos, por isso duas tabelas).
(IDFuncionario, IDRubrica, ValorPago, Desconto)
Bom, de início eu acho que dá.
[ ]s,
Gustavo
-
-