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.