Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/08/2011, 10:52
Avatar de Carxl
Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Cómo resolver el siguiente requerimiento, respetando OCP

Hola, cómo vamos?

Bien, tengo el siguiente requerimiento:

Hay una consulta sql que puede ir creciendo en cualquier momento, son casi como condiciones en el where.

Lo normal que se haría, sería algo como esto:

Código PHP:
Ver original
  1. $sql = $condiciones = $innerjoins = null;
  2.  
  3. $sql = "select * from tabla1 $innerjoins where table1.campo1 in (2,3,4) $condiciones;";
  4.  
  5. if ($tipoAlgo) {
  6. innerjoins .= 'inner join tabla2 on tabla1.campo3=tabla2.campo1 ';
  7. $condiciones .= 'and tabla2.tipo=4 ';
  8. }
  9.  
  10. if ($maxAlgo) {
  11. innerjoins .= 'inner join tabla2 on tabla3.campo3=tabla2.campo2 ';
  12.  $condiciones .= 'and max_value=100 ';
  13. }
  14. .
  15. .
  16. .
  17. $result = ejecutar_query($sql);
  18. //mostrar resultados

Si lo hiciera así, estaría violando el principio Open/Close, porque cada vez que me pidan una nueva condición, tendría que estar escribiendo if y dando lugar a posibles errores.

Qué ideas se les ocurren para cubrir el requerimiento pero respetando OCP.

Quedo pendiente

Gracias!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com