Fórum Dúvida com a modelagem de dados do sistema #570206
31/10/2016
0
Meu sistema é sobre prestação de serviço, onde o cliente posta um Projeto( Problema que contém na casa dele e precisa consertar) e o Freelancer cadastra Proposta nesse projeto afim de resolver o problema do cliente. O problema galera que estou com dúvidas em como modelar isso para depois programar, pois do jeito que modelei está falho e não funcionará futuramente. Pois, eu preciso que no projeto tenha os dados do cliente, para que depois eu possa adicionar no perfil do freelancer os projetos que ele realizou. Poderiam me ajudar, abaixo tem as fotos onde tentei melhor me expressar.
https://uploaddeimagens.com.br/imagens/asasasa-png--17
Essa é a minha modelagem ( ocultei alguns campos, pois são desnecessários para entendimento).
https://uploaddeimagens.com.br/imagens/abc-png--27
Matheus Cano
Curtir tópico
+ 0Post mais votado
31/10/2016
--Para ilustrar melhor, criei as tabelas CLIENTE e PROFISSIONAL com campos básicos:
CREATE TABLE CLIENTE(
ID INT NOT NULL,
NOME VARCHAR(50) NOT NULL,
);
CREATE TABLE PROFISSIONAL(
ID INT NOT NULL,
NOME VARCHAR(50) NOT NULL,
);
--Na tabela de projetos, temos o campo CLIENTE_ID para que seja possível mostrar as informações do cliente:
CREATE TABLE PROJETO(
ID INT NOT NULL,
CLIENTE_ID INT NOT NULL,
DESCRICAO VARCHAR(50) NOT NULL
);
--Na tabela PROPOSTA, temos o campo PROFISSIONAL_ID para que possamos mostrar as informações dos projetos no perfil do profissional:
CREATE TABLE PROPOSTA(
ID INT NOT NULL,
PROJETO_ID INT NOT NULL,
PROFISSIONAL_ID INT NOT NULL,
STATUS CHAR(1) --N: NÃO VISTA, A: ACEITA, R: RECUSADA
);
--Quando formos exibir as informações do cliente no projeto usaremos uma consulta como essa:
SELECT p.ID,
p.DESCRICAO,
c.ID AS CLIENTE_ID,
c.NOME
FROM PROJETO p,
CLIENTE c
WHERE p.CLIENTE_ID = c.CLIENTE_ID
--Para exibirmos os projetos que o profissional realizou, faremos assim:
SELECT p.ID,
p.DESCRICAO,
FROM PROJETO p
PROPOSTA r
WHERE p.ID = r.PROJETO_ID
AND r.PROFISSIONAL_ID = ?
AND r.STATUS = 'A';
--Basta substituir o ponto de interrogação pelo id do profissional. Repare que fiz uma junção com a tabela PROPOSTA para poder trazer somente os projetos que tiveram propostas aceitas do profissional
Se a resposta foi útil dê um like! :-)
Npi Tecnologia
Gostei + 1
Mais Posts
01/11/2016
Matheus Cano
Gostei + 0
01/11/2016
Npi Tecnologia
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)