Trabalhando e manipulando Metainformações

Tempo de Leitura: 3 Minutos

Neste artigo, vamos falar dos metadados ou metainformações, que são dados sobre dados, é uma definição meio complicada de entender de imediato e até retórica, mais se usada de maneira correta, traz muita facilidade para definir atributos de um conjunto de dados. No exemplo, vamos tratar de metadados sobre produtos para um e-commerce. Onde é possivel definir dinamicamente atributos a determinado grupo de produtos, ou a um produto específico.

Matainformações, são dados que descrevem uma determinada informação, ou um conjunto de informações como o titulo de um documento, um atributo de um produto, a cor de um carro, o combustível deste carro. Tem como objetivo ser um conjunto de características de um item.

Com base nesta definição, vamos implementar uma tabela de PRODUTOS para um e-commerce de uma loja de Produtos Naturais e Farmacêuticos que possuem informações de apresentação obrigatória e definir uma outra tabela com os metatados desses produtos, ou seja, características específicas de cada um dos produtos, lembrando que cada grupo de produto e cada produto pode ter seu próprio conjunto diferente de informações, que são obrigatórios e dependentes do grupo de produto selecionado, e que o vendedor também pode querer adicionar mais dados a este produto.

Nossa base de dados possui a seguinte estrutura, para a tabela de PRODUTOS

ID Numérico Identificador Exclusivo (ID) do produto
NOME Texto(100) Nome do produto, ou titulo
DESCRICAO Texto Descrição das características e detalhes sobre o produto
PREÇO Decimal Valor de Venda do Produto
DESCONTO Decimal Valor de desconto, em caso de preço promocional
CATEGORIA Numérico ID da categoria do produto
DISPONIBILIDADE Numerico Quantidade disponível do produto para venda
ATIVO LOGICO Se produto está disponível ou pausado

Para a tabela CATEGORIAS usamos somente os campos:

ID Numérico Identificador Exclusivo (ID) da CATEGORIA
DESCRICAO Texto(100) Nome da categoria

Agora imagina que por uma determinação de uma lei os produtos que forem itens de vestuário obrigatoriamente precisam apresentar a composição, e os produtos elétricos precisem apresentar a VOLTAGEM e por fim os produtos alcoólicos precisam exibir um alerta sobre os riscos do consumo do álcool,  porém, os demais produtos não precisam de nenhum dado adicional.

A primeira coisa que vem a nossa mente é simplesmente incluir esses atributos de produto e preencher conforme a necesside, porém, isso gera uma base de dados com campos desnecessários na tabela PRODUTOS pois nem todos os atributos (campos) são dependentes diretamente da chave primária (ID do Produto) nem pertencem unica e exclusivamente a essa base. Então, como resolver?

Simples, vamos criar uma nova tabela de METAINFORMAÇÕES de PRODUTOS, chamamos ela de METAPRODUTOS e ela contém a seguinte estrutura:

ID Numérico Identificador Exclusivo (ID) do produto
CAMPO Texto(100) Nome do CAMPO META
VALOR Texto(300) Valor do CAMPO META
PRODUTO Numérico ID do PRODUTO

Simples assim, podemos inserir nesta tabela as informações necessárias, em pares CAMPO/VALOR e esses campos obrigatórios poderiam estar listados na tabela CATEGORIAS ficando por exemplo assim:

ID Numérico Identificador Exclusivo (ID) da CATEGORIA
DESCRICAO Texto(100) Nome da categoria
METADADOS JSON / TEXT Json array dos campos obrigatorios

Nos metadados, podemos inserir um JSON com os campos obrigatórios, que serão validados e inseridos na tabela PRODUTOS_META ai, podemos de maneira simples exportar até mesmo dinamicamente por AJAX ai, assim que selecionado uma categoria que possui esses valores, nossa aplicação pode abrir o espaço para que os campos sejam inseridos, e posteriormente trabalhados nas saídas de dados, de qualquer método.

Uma aplicação que usa muito essa técnica de METADADOS para adaptar-se aos mais diversos fins é o WORDPRESS o que lhe confere um enorme poder de tratamento dos dados do usuário, de maneira simples, e muito rápida. Essa técnica é extremamente versátil e pode ser usada nos mais diversos fins.

Os metadados tem como objetivo trazer mais informações podendo ser usados nos mais diversos tipos de tabelas e armazenamento de informações, e são dúvida uma importante ferramenta para analistas de dados e datamining além de agregarem grande poder a forma pela qual sua aplicação trabalha com os dados armazenados.