Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

yoda

EAV, good or evil?

Mensagens Recomendadas

mjamado
Digam aí a vossa opinião sobre EAV (http://en.wikipedia.org/wiki/Entity-attribute-value_model). Aparentemente as opiniões dividem-se sobre a sua real utilidade, uns por ser má programação, outros por ser mais simples ..

Olá, yoda.

Na minha opinião, é mais um modelo como tantos outros. Já usei nalgumas situações, sobretudo em casos em que não sabes as propriedades dos objectos que vais modelar.

Por exemplo, pensa numa loja de informática: para além das propriedades partilhadas por todos os produtos (descrição, preço, peso, tamanho da caixa, essas coisas), existem propriedades que são partilhadas por apenas uma categoria ou sub-categoria de produtos. Os processadores têm velocidade, memória da cache, os discos têm tamanho e tempo de acesso, as memórias têm tamanho, velocidade e latência... Acho que já estás a ver a coisa.

Em vez de modelares o objecto 'produto' com as propriedades cpu_velocidade, hdd_tamanho, ram_velocidade, e por aí fora, modelas vários objectos auxiliares seguindo o modelo EAV.

Cada caso é um caso. Para mim, é um disparate, por exemplo, modelar um canal de notícias/novidades segundo o modelo EAV. Mas não deixa de ter a sua aplicação em casos concretos.

Por acaso nunca tinha ouvido falar mal do modelo em si; daquilo que alguns programadores fazem com ele, já é outra história, mas isso é como tudo o resto...


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
yoda

Eu vejo utilidade nele, como disseste, em alguns casos, mas em termos de controlo de informação perde um bom bocado. Usar um modelo destes implica generalizar o tipo de informação, o que por um lado facilita num sistema dinâmico e por outro lado implica que o mesmo sistema fique mais pesado quando se tem de controlar todo o fluxo de dados na parte do código em vez de recorrer directamente à base de dados para controlar o tipo de input que a mesma recebe.

Acho que acaba por ser como tudo, se for abusado o seu uso, torna-se inútil, mas se for bem medido é uma mais-valia.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.