Jump to content
  • 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

Recommended Posts

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.

Share this post


Link to post
Share on other 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"

Share this post


Link to post
Share on other 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!

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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"

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.