Jump to content
freskhu

Duvida construção base de dados

Recommended Posts

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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.