sábado, 8 de junho de 2013

Tabela dinâmica ou Não Pivot Table

Original post: http://anothermysqldba.blogspot.com/2013/06/piviot-table-or-no-pivot-table.html

Este tópico recentemente surgiu no forums.mysql.com site.

A opinião expressa é que tabelas dinâmicas são muito difíceis de dimensionar e manter valeria a pena um redesenho do esquema, em vez de uma tabela dinâmica. Esta é uma opinião válida com pontos válidos.

Eu gostaria de adicionar o tópico aqui para ajudar a expressar o meu ponto de vista e tê-lo disponível para os outros.

Tudo depende dos dados que estão sendo coletados sobre se você deve usar uma tabela dinâmica ou não. O exemplo dado em um post anterior por mim foi apenas um exemplo de como eles funcionam.

Se você está coletando informações do usuário conhecido (primeiro e último nome, informações de endereço, telefone), então sim uma tabela dinâmica é mais complicado do que o que você precisa. Se você só tem alguns pontos de dados para amarrá-los para fora dessa informação essencial, então sim, outra mesa é uma solução e amarrado com uma junção simples.

O conceito de tabela dinâmica é válida quando é para valores dinâmicos de dados por entidade você está coletando.
Você pode precisar de 10 pontos de dados de 100 usuários. Você pode precisar de 500 pontos de dados sobre os próximos 100 usuários. Pode o esquema manipulá-lo facilmente?

O exemplo dado no post anterior eu concordo não necessita de uma tabela dinâmica. Mas eu usei apenas o conceito que me foi dada no fórum para responder a pergunta.

Idealmente, você pode usar as duas soluções no seu esquema. Pontos de dados centrais, manter-se em colunas. Os dados dinâmicos manter em mesas de articulação.

Se for construído corretamente é muito escalável, os bilhões e bilhões de dados que eu armazenados na tabela dinâmica provou isso para me facilmente. Isso não quer dizer que não iria exigir algum trabalho. Você pode muito bem achar que criar algumas visões ou tabelas resumo que olhar para a tabela dinâmica seria mais fácil para os outros para coletar dados. Isso levanta a questão, então por que não foi os dados armazenados dessa forma, em primeiro lugar? Mais uma vez, depende da natureza dinâmica dos seus dados e aplicativos que usa os dados.