antes de responder a sus preguntas... creo que user_id no debería estar en la tabla de talentos... la idea principal aquí es que "para 1 talento tiene muchos usuarios, y para un usuario tiene múltiples talentos". Entonces, la relación debe ser NxN, necesitará una tabla intermedia
consulte:muchos a muchos
ahora
si desea hacer algo dinámico (agregar o eliminar subtalentos), puede usar una relación recursiva. Esa es una tabla que está relacionada consigo misma
TABLE TALENT
-------------
id PK
label
parent_id PK FK (a foreign key to table Talent)
si está usando el modelo anteriormente, podría ser una pesadilla hacer consultas, porque su tabla Talentos ahora es un ÁRBOL que puede contener múltiples niveles. Mesa de talentos supongo que con dos es suficiente... así tus consultas serán más fáciles
cuando se usan relaciones recursivas... la clave foránea debe permitir valores nulos porque los talentos de niveles superiores no tendrán un parent_id...
¡Buena suerte! :)
EDITAR: ok.. he creado el modelo.. para explicarlo mejor
Editar Segundo modelo (en forma de árbol de Navidad =D) Tenga en cuenta que la relación entre Modelo y Talento y Actor y Talento es una relación 1x1, hay diferentes formas de hacerlo (el mismo enlace en los comentarios )
para averiguar si el usuario tiene talento... únase a las tres tablas en la consulta =) espero que esto ayude