Anche a me pare di capire che tecnico estenda utente.
Inoltre posso dire con sicurezza che la classe tecnico dovrà avere metodi proprietari che non centrano con utente ma solo con i dati del tecnico.Premesso se l'utente è di livello amministratore non ha record tecnico...
La join era per avere tutti i dati (Qual'ora ci fossero).
Se io metto un getTecnico() all'interno della classe utente sarei costretto a inserire una serie di metodi, appartenenti al tecnico nella classe user, non mi sembra corretto... almeno da quanto ho capito delle classi....Codice PHP:
/* IPOTESI 1*/
class utente{
//proprieta
public function load(id){
//setta le proprietà
}
}
class tecnico{
//proprieta
public function load(id){
//setta le proprietà
}
}
test.php
$utente = new utente();
$utente->setID($id);
$utente->load();
if($utente->livello=="tecnico")
$tecnico = new tecnico();
$tecnico->load($user->getId())
/* IPOTESI 1 */
/* IPOTESI 2*/
class utente{
//proprieta
public function load(id){
//setta le proprietà
}
}
class tecnico extends utente{
//proprieta
public function load($id){
//setta le proprietà
parent::Load($id); // setto anche le proprietà utente
}
}
test.php
$tecnico = new tecnico();
$tecnico->setId($id);
$tecnico->load();
/* IPOTESI 2 */
Il metodo (eager loading) è come la mia ipotesi 2?
Aggiornamento magari utile...
un utente di livello amministratore ha solo il record "utente"
un utente di livello tecnico ha record "utente" e record "tecnico"