2
respostas

Quando uma tabela não necessita estar relacionada com outras no banco de dados?

Por exemplo, tenho uma tabala SEXO que define masculino e feminino. Esses dados são utilizados em diversas outras tabelas de cadastro, onde tenho apenas o campo sexo com o valor 1 ou 2 (correspondente masculino e feminino). quero saber se é necessário chave estrangeira para as tabelas que tem campo sexo. e outros exemplos de não utilização de chave estrangeira.

2 respostas

Se você quer criar uma tabela e relacionar a outras você vai precisar criar as chaves estrangeiras sim.

Mas se pergunte se poderá haver mais de uma entrada para este relacionamento, por exemplo: Um usuário poderá ter vários endereços? Se sim, crie uma tabela chamada enderecos separada da tableta usuarios e a relacione. Um usuário pode ter vários gêneros? Não, então crio um campo simples na tabela de usuarios.

Pesquise sobre normalização de banco de dados para entender todos os casos. Acho válido separar dados em diferentes tabelas e criar estes relacionamentos se os dados pertencem a um domínio/escopo definido ou se essa tabela pode ser "reutilizada", digamos assim.

Eu manteria gênero como um campo simples (booleano ou não), até facilitaria na hora de fazer a consulta.

Só complementando a excelente resposta da Claudia Farias. Os bancos são chamados de RELACIONAIS por um bom motivo. Você está relacionando entidades. A modelagem do bd praticamente é um esquema de relacionamento. Se vc tem uma tabela que não se relaciona com as outras vc deve se questionar pq ela existe. No caso acima vc poderia ter uma coluna ID para o sexo e salvar esse ID nas tabelas ao invés de salvar a descrição do gênero (e usar FK etc). No caso essa tabela tem "baixa cardinalidade" (só dois valores diferentes) e são valores fixos então normalmente não há pq criar uma tabela e normalmente se faz como Claudia explicou, coloque apenas um campo boleano e trate isso na aplicação