než odpovím na vaše otázky... myslím, že user_id by nemělo být v tabulce Talentů... hlavní myšlenkou zde je, že "na 1 talent máte mnoho uživatelů a na jednoho uživatele máte více talentů".. takže vztah by měl být NxN, budete potřebovat zprostředkující tabulku
viz:mnoho k mnoha
nyní
pokud chcete udělat něco dynamického (přidat nebo odebrat subtalenty), můžete použít rekurzivní vztah. To je tabulka, která souvisí sama se sebou
TABLE TALENT
-------------
id PK
label
parent_id PK FK (a foreign key to table Talent)
viz :rekurzivní asociace
pokud jste model používali dříve, mohla by být noční můra dotazovat se, protože váš stůl Talents je nyní STROM, který může obsahovat více úrovní. Možná se budete chtít omezit na určitý počet úrovní, které chcete ve svém Talentova tabulka, myslím, stačí dvě... tak budou vaše dotazy jednodušší
při použití rekurzivních vztahů... cizí klíč by měl povolit hodnoty null, protože talenty nejvyšší úrovně nebudou mít parent_id...
Hodně štěstí! :)
UPRAVIT: ok.. vytvořil jsem model.. abych to lépe vysvětlil
Upravit Druhý model (ve tvaru vánočního stromku =D ) Všimněte si, že vztah mezi Model &Talent a Herec &Talent je vztah 1x1, existují různé způsoby, jak toho dosáhnout (stejný odkaz v komentářích )
zjistit, zda má uživatel talent.. připojte se ke třem tabulkám v dotazu =)doufám, že to pomůže