Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

filipe225

Criaçao de Base de dados

Mensagens Recomendadas

filipe225

Boas eu preciso de completar a minha base de dados, mas não percebo que campos e que tabelas necessito.

Passo a explicar. Estou a desenvolver um programa para uma associação com vários sócios e estes têm de pagar quotas mensais. Para já tenho a tabela dos sócios.

Socios

idsocios

nome

tiposocio

filiacao

naturalidade

datanascimento

nidentificacao

profissao

telefone

Nesta associação há 3 tipos de sócios e cada tipo paga uma quota diferente.

Agora precisava das tabelas para saber quais os sócios que já pagaram as quotas e quais os que ainda têm as quotas em atraso.

Eu não consigo perceber quantas tabelas necessito nem quais os seus campos. Se me puderem ajudar agradecia bastante.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

    Boa noite,

    Estás no bom caminho para fazer a base de dados. Já lês-te algo sobre base de dados, vê toda a informação que vais ter de armazenar, depois faz o modelo ER e antes de passares para tabelas.

    Deixo um link de um manual que te pode ser util: https://dspace.ist.utl.pt/bitstream/2295/48721/1/BDaula21.pdf

    Na tua tabela falta um campo para o numero de identificação fiscal, e tem em atenção que  a emissão de cotas e o respectivo recibo.

    A tabela de cotas, pensa no assunto de forma simples, precisas de emitir as cotas, registar e pagamento. De forma simples diria que com duas tabelas fazes isso.

cotas_cabecalho

*id_cota (int)

idsocios (int)

nif (int)

data (date)

paga (boolean)

cotas_linhas

*id_linha (int)

id_cota (int)

data (date)

periodo (int)

valor (int)

    O exemplo que te deixei deve ajudar a a fazeres o sistema de cotas. As contas correntes geras com consultas à base de dados.

Cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

Eu acrescentava uma coluna a tabela dos socios com a validade do ultimo pagamento.

Quando um socio fizesse um pagamento, dependo do valor entregue e das dividas (e ...), actualizava essa coluna para a data correcta. Ao mesmo tempo, para manter um historico, guardava noutra tabela (que entretanto criaste) a data, valor e tipo de pagamento.

Para saber quais os socios que estao em atraso de pagamento bastaria listar aqueles em que a validade fosse anterior a hoje; os que precisam pagar rapidamente teriam a validade anterior a hoje mais um mes; os que estao a vontade teriam a validade superior a hoje mais um mes ... ... ...


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
filipe225

Desde já muito obrigado pelas respostas.

Isto é assim eu estou num curso profissional e este ano tive 4 professores diferentes de programação, ou seja matéria dada foi 0. Por isso é que peço que ponham as tabelas quando me tentam mostrar para eu perceber melhor.

O problema esta aqui se há 3 tipos de sócios e cada tipo paga uma quota diferente . Logo não vou precisar do campo "tiposocio" noutra tabela para assim saber o valor que tem de pagar? Penso que também podia fazer como o apocsantos referiu em que na tabela "cotas_cabeçalho" tenho o campo "idsocios" como chave estrangeira (penso que seja isso que queres que eu fassa) , mas assim penso que também não consigo saber o tipo de socio.

Por exemplo e se um sócio não paga a quota 2 meses seguidos, assim não posso ter o campo "pago" como boleano pois não vou saber que mês é que não esta pago.

Eu penso que vou precisar de duas tabelas certo?

E que vou ter que ir buscar o "idsocios" ou "nome" numa delas.

Penso que tenho que ter o "tiposocio" para saber o montante que vai pagar.

E pelo menos um campo chamado "Ultima_quota_paga" ou "Ultimo_Mes_Pago" e o respectivo "valor" pelo menos, mas estou muito confuso com a base de dados

Peço imensa desculpa por estar a colocar imensas questões mas só me falta este projecto para terminar o curso e não consigo "construir a base de dados".

Um a parte: Se der para fazer um select em que selecciono os que não pagaram(não sei mas se der depois vesse primeiro preciso da base de dados) então no programa depois crio só um botão com esse select para me mostrar na listview os socios a dever.

E ao postarem tentem colocar as tabelas sff é mais fácil de perceber.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
filipe225

Eu acrescentava uma coluna a tabela dos socios com a validade do ultimo pagamento.

Quando um socio fizesse um pagamento, dependo do valor entregue e das dividas (e ...), actualizava essa coluna para a data correcta. Ao mesmo tempo, para manter um historico, guardava noutra tabela (que entretanto criaste) a data, valor e tipo de pagamento.

Para saber quais os socios que estao em atraso de pagamento bastaria listar aqueles em que a validade fosse anterior a hoje; os que precisam pagar rapidamente teriam a validade anterior a hoje mais um mes; os que estao a vontade teriam a validade superior a hoje mais um mes ... ... ...

Podes colocar as tabelas com os respectivos campos sff .É que não estou a perceber a parte da validade do pagamento, porque não depende do valor entregue por exemplo, um sócio simples paga 10€ mês, e pronto ele paga isso todos os meses , todos os sócios simples. E há tres tipos de socios.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
filipe225

pagamentos

id

id_socio

data

socios

id

nome

filiacao

naturalidade

data_nascimento

identificacao

profissao

telefone

socios_quotas

id_socio

id_quota

quotas

id

taxa

Eu não percebo mesmo quase nada de base de dados daí nao ter conseguido concluir o projecto ainda, mas nessa base de dados se um socio pagou 10 euros eu não tenho forma de saber se ele devia ter pago 20, pois (penso eu, e atenção é só ignorancia minha) essa base de dados não distingue os diferentes tipos de socios.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

    Bom dia, mais ajuda do que a que te foi dada só mesmo colocando o modelo ER todo aqui e isso seria fazer o teu trabalho sem que aprendas nada. ;)

paperg.png

    Penso que com todas as ajudas que já te foram dadas e com algum esforço da tua parte, estejas a mais de meio do caminho para solucionar o problema.

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.