Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

freskhu

Duvida construção base de dados

Mensagens Recomendadas

freskhu

Boas,

Já nao crio base de dados ha mais de 10 anos, agora tem mesmo de ser :S Já existem coisas que nao me lembro, e surgiu uma duvida.

Estou a desenvolver algumas aplicações que sinto necessidade no trabalho, em ruby on rails e mysql.

Nao vale a pena explicar a base de dados toda, estou apenas com duvida numa ligação de muitos para muitos nestas tabelas:

enco(id, cod_cli, cod_tipo_enco, cod_ano, valor, ...)

tipo_enc( cod_tipo_enc, tipo)

Ora bem, parte da base de dados inclui encomendas de clientes. É necessário dividir as encomendas por algumas categorias, para posterior listagem e tratamento de dados. Uma encomenda pode ter vários tipos, e um tipo tem várias encomendas. Neste caso deveria decompor a tabela tipo_enc para fazer ligaçao de 1 para muitos e muitos para 1, mas como esta tabela so tem a chave e o tipo não sei muito bem o que fazer; o que será melhor? Uma tabela no meio com o id e o codi_tipo_enc com ligações 1 para muitos e muitos para um, ficando a tabela tipo_enc na mesma?

Ou seja ficava assim?

enco(id, cod_cli, cod_tipo_enco, cod_ano, valor, ..

enco_tipo_enc(cod_tipo_enc, id)

tipo_enc( cod_tipo_enc, tipo)

Agradeço desde ja a atenção smile.gif

Um abraço

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

sim, a solução usada para o caso de teres relações N-N é o uso da tabela auxiliar.

já agora, aconselho-te vivamente a começar a nomear os teus campos seguindo uma regra mais estrita, porque pode se tornar complicado no futuro.

o exemplo mais claro que tens será campos com o nome "id", são alvos de repetição o que pode se tornar complicado no momento de projecções de várias tabelas.

podes criar um campo identificador que se tornará única 99.9999% dos casos na combinação da palavra "id" com o nome da tabela.

exemplo: id_tipo_enc

o uso de abreviações nos nomes dos campos, sempre é melhor que o campo "a" mas torna a leitura de terceiros e/ou leituras futuras para reformulações/actualizações sempre mais moroso. tenta usar um nome o mais claro possível.

exemplo : codigo_cliente (e não cod_cli)


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.