[Cascavel-pm] Dúvida em implementação de BD. Opiniões?
Luis Campos de Carvalho
lechamps em terra.com.br
Quarta Março 10 09:20:55 CST 2004
Gabriel Vieira wrote:
> Luis,
>
> como a solicitação é feita via mysql, não interfere a quantidade de colunas
> existentes, caso os campos a serem solicitados sejam especificados.
>
> E a alteração de um campo na tabela não causa nenhuma falha na estrutura em
> si, pois o que interessa serão os campos solicitados, e tendo um campo que
> afirma se tal 'website' terá acesso ou não ao conteúdo é mais pratico não
> exigindo o uso de outras tabelas.
> Soluções melhores existem, mas creio que esta seja prática e funcional.
Mais ou menos... o programa (teoricamente) não deveria armazenar
informações na estrutura do banco de dados. Me refiro a ter colunas de
uma tabela nomeadas com o identificador do website, ou coisa que o
valha. Isto, a longo prazo, torna-se um pesadelo de manutenção, e
influencia a perfomance do banco de dados, além de colocar um limite
físico para a quantidade de websites que poderiam ser armazenados (igual
ao número máximo de colunas que o MySQL suporta em uma só tabela).
Exemplo:
Imagine você se este controle precisar atender a 500 ou 750
websites... teremos tabelas que apenas podem ser manipuladas
programaticamente, em um banco de dados difícil de gerenciar e de baixa
performance, com muito espaço alocado para pouca informação.
Adicionalmente, extender a aplicação de qualquer forma pré-supõe
conhecimento específico sobre as tabelas do banco de dados. A existência
de uma tabela que não tem forma definida, mas cresce dinamicamente,
torna-se um obstáculo a mais (todos os programas precisam conhecer a
fundo a estrutura onde os dados são armazenados, o que nos deixa
novamente na "idade da pedra" dos sistemas gerenciadores de bancos de
dados, quando todos os programas sabiam como ler e escrever diretamente
no banco de dados.
Por outro lado, acrescentar um novo website é uma operação
quadrativamente mais lenta a cada novo website, já que a alteração da
estrutura de uma tabela cresce em O(n^2), enquanto a adição de uma linha
é O(1), se eu não me engano... [onde 'n' é a quantidade de linhas da
tabela alterada]
Eu não acredito que as desvantagens superem quaisquer vantagens
conseguidas com a violação do princípio de encapsulamento de dados pelo
SGBD. Mas claro, esta é apenas a minha humilde opinião...
Mas faça assim: apareça no nosso encontro, sexta (ou sábado?) e
discutiremos isso em torno de alguns copos de chopp, que é a segunda ou
terceira coisa mais prazeiroza do planeta, IMHO, novamente.
Sem ressentimentos ;-)
Putamplexos!
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Luis Campos de Carvalho is BSc in Comp Science,
PerlMonk [SiteDocClan], Cascavel-pm Moderator,
Unix Sys Admin && Certified Oracle DBA
http://br.geocities.com/monsieur_champs/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Mais detalhes sobre a lista de discussão Cascavel-pm