Ver Mensaje Individual
  #9 (permalink)  
Antiguo 19/05/2012, 05:14
Avatar de cluster28
cluster28
 
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 10 meses
Puntos: 32
Respuesta: Enfoque correcto del modelo de datos

Cita:
Iniciado por oscartt67 Ver Mensaje
Código PHP:

$obj_cliente 
=  NewClassTable("cliente",$id);

function 
NewClassTable($pTable,$pId='',$pFiltre="",$pConnection="default"){
    if(!
class_exists($pTable)){
        
$exec="
        class $pTable extends ClsCRUD {
            function __construct(\$carregaId='',\$filtre='',\$pConnection='default'){
                \$this->taula='$pTable';
                \$this->IniVars(\$carregaId,\$filtre,\$pConnection);
                }
            }
        "
;
        eval(
$exec);
    }
    
$newclass=new $pTable($pId,$pFiltre,$pConnection);
    return 
$newclass;

Este modelo ya se me había pasado por la cabeza. Yo tengo una clase base que implementa todo el tema de acceso a BD. Cualquier clase que derive de ésta tiene los métodos de trabajo con la tabla correspondiente ya implementados. Yo tengo muchos métodos en las clases hijas ya que es necesario implementarlos en ellas.

Cita:
Iniciado por masterpuppet Ver Mensaje
@cluster28, habria que ver a que le dices "cargar todos los datos"
Tengo objetos que contienen otros. Sin duda, siempre se puede depurar para que sólo cargue los objetos internos cuando sea necesario.

Yo tengo esta mentalidad. Dentro de un objeto si tienes que realizar una acción sobre una tabla que no tiene relación con el propio objeto (Ej: Obj Cliente con tabla clientes), si tengo creada la misma relación (Obj Factura con tabla facturas), dentro de Cliente creo un objeto factura y trabajo con ese objeto dentro de Cliente.

Bueno, pues me recomiendan que dentro de cliente trabaje directamente con la tabla facturas, validaciones aparte, o lo que sea, pero sin usar más objetos porque eso baja el rendimiento, y en el objeto Factura tengo muchos métodos implementados que me servirían dentro de Cliente, pero hay que volver a escribir el código en Cliente. Guay, más rendimiento, más código y más tiempo de desarrollo.

Espero que me haya explicado bien.