io opterei per mantenere separate le entità
un utente può essere anche un tecnico, ma anche no..
con un campo details sul model dell'utente ci puoi ficcare le specifiche che ti interessano
Nella tabella utente ci metti un campo "tecnico" si/no e poi decidi in base al campo se caricare i dettagli o no..
una soluzione più elegante sarebbe con un campo "type" cosi puoi distinguere gli utenti in più modi
quindi:
Codice PHP:
class userModel {
protected $fields = array( 'id', ,'nome', 'cognome', 'details', 'type' );
public $details;
}
la logica sarebbe
Codice PHP:
$mapper = new userMapper( $pdo );
$mapperTecnico = new tecnicoMapper( $pdo );
$user = $mapper->fetch( $id );
switch( $user->type ) {
case 'tecnico':
$user->details = $mapperTecnico->fetchByUser( $user->id );
break;
case 'banana':
$user->details = 'banana';
break;
}
print_r( $user );
in questo modo hai l'oggetto tecnicoModel all'interno dell'oggetto userModel
my2cents