1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Bases de Dados

Discussão em 'Programação' iniciada por _K_, 18 de Maio de 2012. (Respostas: 9; Visualizações: 764)

  1. _K_

    _K_ Power Member

    Boas pessoal, estou aqui com uma dúvida que supostamente eu sei resolver, mas estou um pouco confuso com o conceito.

    A questão é, qual a melhor maneira para separar registos da base de dados por anos diferentes? Se eu tiver equipas e atletas devo acrescentar o ano a cada equipa e a cada atleta (chave composta)? Há outra forma?

    Obrigado...
     
    Última edição: 18 de Maio de 2012
  2. fel

    fel Power Member

    Eu teria uma coluna adicional para a data. Mas tipo se só estiveres a usar uma data ou duas faz sentido normalizar, mas se for uma lista 1960-2012 não vejo grandes ganhos praticos, sendo que só vai trazer complexidade acrescida.
     
  3. _K_

    _K_ Power Member

    Era mais para permitir a base de dados a ter separação por ano. Por exemplo, ter uma base de dados "nova" para o ano 2011, outra "nova" para o ano 2012 se me estás a entender.
     
  4. fel

    fel Power Member

    O que eu faria era ter em cada equipa e atleta uma coluna para o ano. Se forem tabelas diferentes, corresponderia a duas colunas distintas.

    A partir daqui podes agrupar por ano ou fazer joins a outras tabelas continuando a manter os dados agrupados pelo ano, tendo um ID unico para cada equipa ou atleta. Não vejo necessidade de utilizar chaves compostas para fazer a identificação, a não ser que uses tipo a identificação pelo nome da equipa (se não for unico, caso contrário é como o e-mail, que pode servir como chave primária) e ano de fundação por exemplo. De qualquer forma, acho que é complicar.
    Isto, estando eu a perceber o problema.
     
    Última edição: 18 de Maio de 2012
  5. _K_

    _K_ Power Member

    A questão é que para cada ano há diferentes equipas e diferentes atletas.
     
  6. fel

    fel Power Member

    Nesse caso podes sempre ter uma tabela para cada ano.

    Exemplo:
    users_2010
    users_2011

    Ficas com o problema de imediato resolvido.
     
  7. _K_

    _K_ Power Member

    Como farias para eu ter N equipas em N anos?
     
  8. fel

    fel Power Member

    De acordo com essa ultima lógica, Imaginando que uma equipa é de 2012, e ainda não tinhas essa tabela. É só verificares se a tabela existe, e caso não existe crias uma nova a partir da data inserida. Agora tens é de ter um input do utilizador minimamente validado de forma a teres uma sequencia lógica de tabelas. Podes usar uma white list, ou com regex por exemplo para assegurar o formato da data.

    equipas_2010
    equipas_2011

    e não
    equipas_2010
    equipas_11
    equipas_10/11

    equipas_2010

    id nome_equipa
    1 A
    2 B
    3 C
    .....

    equipas_2011

    id nome_equipa
    1 D
    2 E
    3 F
    .....

    Devem existir outras formas de fazer isto, mas esta parece-me que funcionaria bem e era simples e organizada.
     
    Última edição: 18 de Maio de 2012
  9. fmf1966

    fmf1966 Power Member

    Na realidade não. Existm equipas diferentes para campeonatos ou competicoes.

    Não aconselho a fazer isto também. Irás ter de pesquisar por varias tabelas e sem saberes o nome delas.

    A forma correcta e criar uma tabela para as Competicoes (ID,Nome,Datainicio,etc...), outra para Equipas, outra para Atletas.
    E tabelas de ligação, por exemplo:
    EquipaCompeticoes (Competicao, Equipa,etc...)
    FormacaoEquipa(Competicao,Equipa,Atleta,etc...)
     
  10. _K_

    _K_ Power Member

    Na realidade isto é para uma competição do género das Olimpiadas.
     

Partilhar esta Página