Salve a tutti,

vorrei ricevere un parere da voi. Vorrei sapere se la query lanciata è "sulla strada giusta" oppure se ci sono modi migliori per ottenere lo stesso risultato.

Dunque ho delle tabelle strutturate in questo modo:

#Staff_persona
- id_persona (pk)
- nome
- cognome

# Staff_email
- id_persona (fk)
- email

# Staff_telefono
- id_persona (fk)
- telefono

# Staff_ruolo
- id_ruolo (pk)
- ruolo

# Rel_staff_pr (che sta per tabella di relazione tra le persone e il ruolo investito)
- id_persona (fk)
- id_ruolo (fk)


La query che lancio per ottenere tutti i nomi e cognomi con gli indirizzi email e i numeri di telefono E il ruolo rivestito da essi è la seguente:


codice:
SELECT p.nome, p.cognome, e.email, t.telefono, r.ruolo 
FROM staff_persona AS p 
LEFT JOIN staff_email AS e ON p.id_persona = e.id_persona 
LEFT JOIN staff_telefono AS t ON p.id_persona = t.id_persona 
LEFT JOIN rel_staff_pr AS pr ON p.id_persona = pr.id_persona 
LEFT JOIN staff_ruolo AS r ON r.id_ruolo = pr.id_ruolo
La seguente query mi restituisce i risultati proprio come voglio io. In caso qualcuno non ha un indirizzo email, oppure un numero di telefono, oppure non riveste alcun ruolo, tali valori saranno NULL(i).

La domanda è: ci sono modi migliori per formulare la query ed ottenere gli stessi risultati oppure questo è di già il miglior metodo?


Grazie in anticipo.