Jump to content
Sign in to follow this  
meg4m4n

Gestão de serviços - engomandoria e arranjos

Recommended Posts

meg4m4n

Boa tarde,

Estou a desenvolver uma mini-aplicação em php e mysql para um projecto de "engomadoria e arranjos".

Basicamente quero que faça o seguinte.

- regista / consulta cliente e serviços

- 1 cliente pode ter vários serviços

- serviços por dia / mês

- valor por dia / mês

- quando fecha o serviço, possibilidade de sair um talão com os dados do cliente e o serviço a fazer.

basicamente as tabelas da bd são:

cliente: codcliente, nome, codpostal, contacto

servico: codserv, descricao, dataentrada, servicoefect, valor, datasaida

a dúvida, como consigo fazer isto, a nível de estrutura, ou seja tenho que criar mais uma bd que contenha o serviço e o cliente? ou faço algum tipo de interligação.

pelo desculpa pelo meu nível de conhecimento  😳.

Desde já agradeço a vossa ajuda,

Cumps.

Share this post


Link to post
Share on other sites
herty

Não precisas de mais nenhuma BD. Uma BD chega bem para um projecto.

Só tens uma coisa mal nas tuas tabelas. Nunca vais saber a qual cliente pertence o serviço

Tens de acrescentar um campo na tabela servico que indique qual é o cliente. Este campo é um FK (chave estrangeira).

Ficará assim:

servico: codserv, descricao, dataentrada, servicoefect, valor, datasaida, codcliente

O resto é desenvolver :)

Share this post


Link to post
Share on other sites
meg4m4n

olá. queria-me referir a mais nenhuma tabela, desculpa.

tenho outra dúvida, não sei se me consigo explicar muito bem, mas como "chamo" os serviços do determinado cliente, já que um cliente poderá ter vários serviços acopulados.

Obrigado pela ajuda :)

Share this post


Link to post
Share on other sites
herty

Tens um cliente, queres saber os serviços do cliente. Vais buscar todos os serviços onde o codcliente=[codigo_cliente_que_quizeres]

Share this post


Link to post
Share on other sites
fauna

eu acrescentaria mais uma tabela. colocaria aí uma tabela com a descrição dos serviços. e acrescentava à tua tabela um campo de ligação. do género. e guardava os serviços recorrentes (os contratos mensais e afins) numa tabela à parte. Isto tem uma série de trabalhinho de SQL envolvido :) mas é bom que aprendes a fazer joins

clientes: campos necessários diversos. não te esqueças de um campo de observações para se poder por notas gerais. isto é util para quem tem o negocio para apontar particularidades do cliente

servicos: sid (service id), titulo, descricao, tarifa (se aplicável)

registo: rid, cid (cod de cliente), sid, data_entrada, data_saida_prevista, data_saida_real, valor, obs, done (campo boleano 0 ou 1), entregue (boleano)

registo_recorrente: rrid,cid,sid,periocidade,data_inicio,data_fim,valor, obs, dia_entrega, dia_recolha

Confuso?

Share this post


Link to post
Share on other sites
herty

eu acrescentaria mais uma tabela. colocaria aí uma tabela com a descrição dos serviços. e acrescentava à tua tabela um campo de ligação. do género. e guardava os serviços recorrentes (os contratos mensais e afins) numa tabela à parte. Isto tem uma série de trabalhinho de SQL envolvido :) mas é bom que aprendes a fazer joins

clientes: campos necessários diversos. não te esqueças de um campo de observações para se poder por notas gerais. isto é util para quem tem o negocio para apontar particularidades do cliente

servicos: sid (service id), titulo, descricao, tarifa (se aplicável)

registo: rid, cid (cod de cliente), sid, data_entrada, data_saida_prevista, data_saida_real, valor, obs, done (campo boleano 0 ou 1), entregue (boleano)

registo_recorrente: rrid,cid,sid,periocidade,data_inicio,data_fim,valor, obs, dia_entrega, dia_recolha

Confuso?

Se calhar era melhor ele cumessar só com duas tabelas xD

Share this post


Link to post
Share on other sites
KTachyon

Penso que não será por aí. A complexidade de uma base de dados e o número de tabelas não são proporcionais. Por vezes facilita ter-se mais tabelas com a informação mais atomizada que ter poucas tabelas com a informação replicada com a necessidade de desenvolver queries mais complexas para se obter a informação que se pretende.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
IvanGS

eu acho que a melhor solução que foi aí apresentada foi a do herty.

tens apenas duas tabelas, onde nos serviços tens uma chave estrangeira da tabela cliente...

se for preciso depois alterar vês o que é preciso.

p.s. já fizes-te as normalizações, os DC's e DFD's??????

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
Sign in to follow this  

×
×
  • Create New...

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.