Jump to content

Recommended Posts

Posted

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

Posted

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • 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.