prima di rispondere alle tue domande... penso che user_id non dovrebbe essere nella tabella Talents... l'idea principale qui è che "per 1 talento hai molti utenti, e per un utente hai più talenti".. quindi la relazione dovrebbe essere NxN, avrai bisogno di una tabella intermedia
vedi:molti a molti
ora
se vuoi fare qualcosa di dinamico (aggiungere o rimuovere subtalent) puoi usare una relazione ricorsiva. Questa è una tabella che è correlata a se stessa
TABLE TALENT
-------------
id PK
label
parent_id PK FK (a foreign key to table Talent)
vedere:associazioni ricorsive
se stavi utilizzando il modello prima, fare query potrebbe essere un incubo, perché la tua tabella Talents ora è un ALBERO che può contenere più livelli.. potresti voler limitarti a un certo numero di livelli che desideri nel tuo Tavolo del talento credo che due siano sufficienti.. in questo modo le tue domande saranno più facili
quando si utilizzano relazioni ricorsive... la chiave esterna dovrebbe consentire valori nulli perché i talenti di livello più alto non avranno un parent_id...
In bocca al lupo! :)
MODIFICA: ok.. ho creato il modello.. per spiegarlo meglio
Modifica Secondo modello (a forma di albero di Natale =D ) Nota che la relazione tra Model &Talent e Actor &Talent è una relazione 1x1, ci sono diversi modi per farlo (lo stesso link nei commenti )
per scoprire se l'utente ha talenti.. unisciti alle tre tabelle sulla query =)spero che questo aiuti