antes de responder suas perguntas... eu acho que user_id não deveria estar na tabela Talents... a ideia principal aqui é que "para 1 talento você tem muitos usuários, e para um usuário você tem vários talentos".. então a relação deve ser NxN, você precisará de uma tabela intermediária
veja:muitos para muitos
agora
se você quiser fazer algo dinâmico (adicionar ou remover subtalentos), você pode usar um relacionamento recursivo. Essa é uma tabela que está relacionada a si mesma
TABLE TALENT
-------------
id PK
label
parent_id PK FK (a foreign key to table Talent)
veja:associações recursivas
se você estiver usando o modelo antes, pode ser um pesadelo fazer consultas, porque sua tabela de Talentos agora é uma ÁRVORE que pode conter vários níveis. Tabela de talentos acho que dois são suficientes.. assim suas consultas serão mais fáceis
ao usar relações recursivas ... a chave estrangeira deve permitir nulos porque os talentos de nível superior não terão um parent_id ...
Boa sorte! :)
EDITAR: ok.. eu criei o modelo.. para explicar melhor
Editar Segundo modelo (em forma de árvore de Natal =D ) Observe que a relação entre Modelo &Talento e Ator &Talento é uma relação de 1x1, existem diferentes maneiras de fazer isso (o mesmo link nos comentários )
para descobrir se o usuário tem talentos .. junte as três tabelas na consulta =) espero que isso ajude