Hola lista,

Hace tiempo, realicé una consulta relacionada con los códigos de productos
de mi empresa, donde se tiene que hacer "best matching" conforme el código
de tipo de producto forma parte del código del mismo. Bueno algo como
expuse es:

*12345      --> *producto* A: 12345 *00089
*1234578  --> *producto* B: 1234578 *0258

Escoger el tipo de producto se pudo solucionar con la función prefix.

Ahora, tenemos que para un producto o conjunto de productos, queremos
aplicar ciertas políticas de precios y hemos pensado que el tipo de
agrupaciones según los tipos de productos pueden ser diferentes según la
política a aplicar, con lo que hemos pensado en usar códigos "comodin".

Por ejemplo:

Tenemos varios productos:

Código tipo producto    Tipo producto          Código final producto
     Possible comodin
*12345                  --> *producto* A:         12345  *00089
        *12345**
*1234578                --> *producto* B:         1234578 *0258
        *1234578*
*9876543                --> *producto* C:         9876543 *01234
         *9876543**
*11111                  --> *producto* D:         11111   *22222
         *11111*

Para TODOS los productos un posible comodín seria el asterisco(*).


Por otro lado, podemos tener varias políticas.

   - Política 1: se aplicará un 15% de descuento a todos los productos. →
   código comodín [*].
   - Política 2: se aplicará un 15% de descuento a todos los productos y
   sub-productos *12345 →* código comodín [*12345**]
   - Política 3: se aplicará un 15% de descuento a todos los productos y
   subproductos A y D  → código comodín [*12345**, *11111**]

A nivel de aplicación necesitamos algo genérico ya que no queremos
programar cada vez que se incorpore una nueva política.

Hemos pensado en que cada nueva política contenga los "conjuntos de
productos", por eso tenemos una tabla que los describe y hemos pensado en
añadir una nueva columna que contenga una lista(ARRAY) de "comodines", y de
ella poder saber por producto qué políticas hay que aplicar.

   - Es buena idea? No quiero volver a la conclusión que postgres ya tiene
   algo montado y no he sabido encontrarlo. :-)
   - En caso que POSTGRES no contemple este caso en una de sus funciones,
   cómo seria la query para buscar si se ha de aplicar o no una política??
   Queremos evitar que lo procese el aplicativo y que nos de el resultado
   directamente la BD.

Espero haberme explicado bien.

Gracias por su atención.

Un saludo

-- 
*Ruben Fitó *
Software Engineer
r.f...@ubiquat.com <j.catari...@ubiquat.com>
www.ubiquat.com
Tota la informació continguda en aquest document i arxius adjunts és
CONFIDENCIAL protegida per llei de secret comercial. Si l'ha rebut per
error, si us plau elimini'l i posi's en contacte amb l'emissor.

All information contained in this document and any attachments are
CONFIDENTIAL and protected under trade secret laws. If you receive this
message by mistake, please delete it and notify it immediately to the
sender.

Responder a