Uma dúvida, se tenho duas colunas, onde uma será a Fk de outra:
Projeto: ID, Nome, Status
Status: Cod, Descrição
Na tabela projeto, é melhor eu inserir o Cod do Status, ou direto a descrição?
Projeto: ID, Nome, Status(Status) ou Cod(Status)?
tem um formulário web e são valores pré definidos (combo box) então não tem como escolher outro nome ou digitar errado, mas não sei se é melhor inserir o Cod ou direto a descrição.
Cara a nível de Tabela para Banco de dados eu utilizaria: codStatus;
Agora se fosse a nível de classe eu utilizaria: status(Status);
pmlm
Sempre código. Descrição pode mudar por algum motivo, código não.
P
Pacato
A minha dúvida é exatamente essa Jonathan… pq como vai vir da tela, eu não sei se referencio por código ou por nome, pois já está predefinido e não tem como o usuário inputar errado…
Jonathan_Medeiros
Utilize por código, pois suponhamos que futuramente venha a mudar a estrutura atual do seu projeto, nesse caso a estrutura do seu banco já estará adaptada para funcionar normalmente sem precisar de alterações.
P
Pacato
Então ficaria assim:
Tela:
Campo Status: Ativo, Inativo
Enviaria: 1, 2 (cód)
E na tabela ao inserir na tabela projeto, colocaria CodStatus ao invés de Descrição, é isso?
Solucao aceita
Jonathan_Medeiros
Correto!
Ao realizar consultas onde você precisar da descrição do status você pode utilizar uma junção comparando as chaves entre as duas tabelas.
Observação: Se a sua tabela Status for somente para armazenar (ATIVO / INATIVO), esqueça tudo o que foi dito acima e crie somente a tabela PROJETO com a coluna Status char(1) onde você armazenaria no caso A para ativos e I para inativos.
Agora se sua tabela de Status for armazenas muito mais informação do que isso, aí siga as indicações anteriores, utilizando o código.