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.