Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Projeto de banco de dados relacional (MySQL)


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