Ir ao conteúdo
  • Cadastre-se

Relacionar tabelas


Rianus

Posts recomendados

Ola, bom a duvida não é bem programática, mas sim da estrutura do banco, estou capturando no sistema a chegada ou saída de um ônibus de um terminal, é uma ferramenta android para Fiscais.

Eu tenho duas tabelas:

Funcionários com os campos: Nome, ID, senha, cargo e Palavra-Chave, sendo ID a chave Primaria.

Sendo que com o ID e a senha o funcionário loga no sistema, no sistema existe uma opção de alteração de todos esses dados da tabela, porém só funcionários com cargo de Administrador podem realizar essa operação, mas esse não é meu problema.

Formulário com os campos: Nome da Linha,Número da Linha,Número do carro, Estado, Horário, Terminal, Ocorrência ( este campo que pode ser vazio ), Observação ( este campo que pode ser vazio ).

Nesta tabela também teria um campo ID seria "chave estrangeira" vinda da tabela Funcionários para relacionar com o funcionário que preencheu o formulário e enviou os dados.

As buscas ainda não foram detalhadas porque não tivemos contato com os gerentes, mas vai ter pelo menos por ID de funcionario

Ai vem minha duvida, essa lógica esta certa ou eu preciso de uma chave primaria na tabela Formulário?

Obrigado.

Link para o comentário
Compartilhar em outros sites

Olá.

Ao meu ver, "toda" tabela tem que ter sua chave primária, isso nunca vai lhe atrapalhar em nada, e pode muitas vezes lhe ajudar e muito.

Eu criaria na tabela FORMULARIO uma chave primária, e também criaria a chave estrangeira com o campo ID relacionando com a tabela FUNCIONARIO.

Link para o comentário
Compartilhar em outros sites

Olá,

sim podes e deves colocar uma chave primária em cada tabela.

Agora alguns pontos:

O ID é editável? se sim, ele não pode ser a chave primária, nesse caso precisas de outro campo.. auto_increment para ser a FK da tabela.

Obrigado pelas respostas

O ID no caso, é identificação do funcionário para fazer login o sistema, eu deveria então usar para login um campo ID_Funcionario e colocar o ID para auto_increment?

Olá.

Ao meu ver, "toda" tabela tem que ter sua chave primária, isso nunca vai lhe atrapalhar em nada, e pode muitas vezes lhe ajudar e muito.

Eu criaria na tabela FORMULARIO uma chave primária, e também criaria a chave estrangeira com o campo ID relacionando com a tabela FUNCIONARIO.

Então, essa foi minha primeira ideia para relacionar as tabelas assim como eu disse no primeiro post, só vou ter de criar um campo ID exclusivo para ser FK

Me surgiu outra duvida...:wacko:

Aqui o formulário ainda esta bem..ruim, todos os dados estão sendo coletados em Strings.. ate o horário ( tudo digitado.. ), como eu mesmo vou apresentar vou digitar por exemplo: 23:00, a String recebera este valor, mas como banco ira receber em um campo DATE/DATETIME?

A aplicação é android, estou enviando os dados por post para o MySQL por scripts PHP.

Link para o comentário
Compartilhar em outros sites

Olá Rianus.

Eu faria assim - tabela Funcionario

ID_interno = chave primaria - auto increment

Codigo = usado para logar - UNIQUE KEY

Nome

Cargo

Senha

Palavra chave

Quanto ao campo HORA que é digitado:

O mysql possui o tipo de dado TIME..... daria para você gravar essa informação em um campo do tipo TIME ou até mesmo em um campo CHAR/VARCHAR (muito usado por aí ^^)...... mas prefiro o TIME

Link para o comentário
Compartilhar em outros sites

  • Moderador

O ID no caso, é identificação do funcionário para fazer login o sistema, eu deveria então usar para login um campo ID_Funcionario e colocar o ID para auto_increment?

É +- isso mas ao contrário. como o erciley mostrou acima.

Você terá um campo ID auto increment exclusivo para o registro da linha... e um campo para o login do usuário.

Uma dica: no lugar de uma ID para o usuário logar, pense na possibilidade de utilizar o e-mail cadastrado no banco.. para facilitar. pois o usuário jamais esquece o e-mail... então cabe você a dar mais atenção caso ele esqueça da senha.

Bem no caso do tempo.. sugiro utilizar o tipo datetime... pois você grava a data e a hora no formato:

23:00 2013-10-02

então por java, podes usar algum método de split.. para separar a data da hora..

Link para o comentário
Compartilhar em outros sites

Olá Rianus.

Eu faria assim - tabela Funcionario

ID_interno = chave primaria - auto increment

Codigo = usado para logar - UNIQUE KEY

Nome

Cargo

Senha

Palavra chave

Quanto ao campo HORA que é digitado:

O mysql possui o tipo de dado TIME..... daria para você gravar essa informação em um campo do tipo TIME ou até mesmo em um campo CHAR/VARCHAR (muito usado por aí ^^)...... mas prefiro o TIME

É isso mesmo que vou fazer ^^

os professores com certeza vão querer TIME :D

É +- isso mas ao contrário. como o erciley mostrou acima.

Você terá um campo ID auto increment exclusivo para o registro da linha... e um campo para o login do usuário.

Uma dica: no lugar de uma ID para o usuário logar, pense na possibilidade de utilizar o e-mail cadastrado no banco.. para facilitar. pois o usuário jamais esquece o e-mail... então cabe você a dar mais atenção caso ele esqueça da senha.

Bem no caso do tempo.. sugiro utilizar o tipo datetime... pois você grava a data e a hora no formato:

23:00 2013-10-02

então por java, podes usar algum método de split.. para separar a data da hora..

Então, o grupo imaginou que os fiscais já tenham um ID ou algum código de matricula na empresa, ai eles usariam o mesmo.

Então terei de pesquisar mais sobre esses métodos java.

Obrigado a todos, já consegui escrever os dados no banco, mesmo que minha aplicação diga que não kkkkkkkkkkk

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!