Trabalhando e manipulando Metainformações
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.