Oi pessoal…Desculpe se este tópico está na categoria errada, mas não consegui descobrir uma categoria mais adequada para ele.
Eu tenho que armazenar regras lógica no BD. Estas regras serão embarcadas em uma aplicação de uma empresa que quer que todos os dados manipulados pela aplicação estejam em BD, inclusive as regras.
Quando eu falo de regras, podemos pensar em estruturas como as utilizadas pelo drools, por exemplo.
Estas regras são formadas por duas partes: o antecedente (ou condição) e o consequente.
Ambas as partes são expressões lógicas formadas por termos do domínio, unidos por consctivos lógicos (AND ou OR). Os termos do domínio são estruturas do tipo Conceito:atributo:operador:valor, que neste aplicação são ::operador:valor.
Para dar um exemplo, vamos supor a tabela Empresa a tabela tipo de empresa e regras sobre esta tabela. As tabelas seriam:
Empresa:
-ID: identificador
-QTD_FUNC: quantidade de funcionários
-RECEITA: receita anual
-QTD_FILIAIS_INTERNACIONAIS: quantidade de filiais em outros países
Tipo_De_Empresa:
-ID: identificador da empresa
-TAMANHO:
-NATUREZA:
Possíveis regras seriam:
Empresa:QTD_FUNC>1000 OR Empresa:RECEITA>1000000 -> Tipo_De_Empresa:TAMANHO=GRANDE
Empresa:QTD_FILIAIS_INTERNACIONAIS>0 -> Tipo_De_Empresa:NATUREZA=MULTINACIONAL
A primeira regra relaciona quantidade de funcionários ou receita para estimar o tamanho da empresa. A segunda determina se a empresa é multinacional ou não, conforme a quantidade de filiais internacionais dela.
Pois bem. Alguém tem uma idéia de como eu posso armazenar essas regras em BD? Eu até pensei em usar uma estrutura baseada em grafos, mas me pareceu confuso.
