Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/06/2015, 15:09
kiko's
 
Fecha de Ingreso: julio-2005
Mensajes: 310
Antigüedad: 18 años, 9 meses
Puntos: 36
Diseño base de datos y clases en PHP

Buenas,

Tengo una base de datos llamada BASE_DATOS_A que contiene las siguientes tablas:

SERVICE
-- integer id
-- string campo_a
-- string campo_b

SERVICE_EXTENDS
-- integer id
-- integer id_tabla_a
-- string campo_c


La idea es que SERVICE es una tabla federada, se encuentra en otro servidor, y no queremos modificar ninguno de los valores de sus atributos (sólo leerlos). Es una tabla que se comparte en muchas otras aplicaciones. Y tenemos una SERVICE_EXTENDS que en POO (si estuviéramos programando clases en PHP) extendería la clase llamada TABLA_A y le añadiría funcionalidad (sería como una especie de subclase de la tabla SERVICES)

Lo que se quiere hacer es tener una vista (un formulario) con los inputs:
- campo_a (input de solo lectura)
- campo_b (input de sólo lectura)
- campo_c (input de lectura/escritura porque pertenece a la TABLA_B)

El caso es que el MER queda un poco raro luego a la hora de pasarlo a clases en PHP. A mi no me termina de convencer. Había pensado como solución hacer una vista que hiciera el INNER JOIN de las dos tablas, aunque luego creo que no sabría que campos pertenecen a la tabla federada (y por lo tanto en el formulario html deberían ser de sólo lectura) y esa vista sería mi clase en PHP.

También tener sólo una clase SERVICE_EXTENDS y definir algo así (en Laravel):

Código PHP:
class SERVICE_EXTENDS extends Eloquent{

public function 
service()
{
      return 
$this->hasOne('Service');
}

public function 
getCampoAAttribute() { return $this->service()->campo_a; }
public function 
getCampoBAttribute() { return $this->service()->campo_b; }


No sé... Parece todo muy forzado y poco elegante.