Usar uma tabela de relacionamento ou uma coluna do tipo SET?
Boa noite a todos...
Bom, estou desenvolvendo minha primeira aplicação e após modelar o banco de dados, surgiu uma dúvida...
Eu tenho o seguinte cenário:
Uma tabela Pessoas com os campos: id ---- idade ---- altura ---- peso
Tenho uma outra tabela Caracteristicas com os campos: id ---- nome, onde o nome é a caracteristica, por exemplo: olhos e cabelos:
1 ---- olhos
2 ---- cabelos
Outra tabela com os tipos das caracteristicas acima, tabela Tipos: id ---- caracteristica_id ---- valor
Nessa tabela eu tenho, por exemplo:
1 ---- 1 ---- azul
2 ---- 1 ---- castanho
3 ---- 1 ---- verde
4 ---- 2 ---- loiro
5 ---- 2 ---- preto
Nos exemplos acima, teoricamente a pessoa só poderia ter um tipo de cada caracteristica: 1 tipo de olho, 1 tipo de cabelo. Porém o sistema terá características que a pessoa terá mais de uma, como por exemplo: Vícios, e os tipos: Fuma, bebe, etc. Nesse casso, ele pode ter um ou mais de um...
E por fim, pra relacionar tudo isso com a tabela Pessoas, eu tenho uma tabela de relacionamento chamada Atributos: pessoa_id ---- caracteristica_id ---- tipo_id
O sistema terá um painel de administração com a funcionalidade de manter a Pessoa, com um CRUD básico, onde ela vai definir todos esses atributos e claro um front-end onde mostrará as informações dessa Pessoa.
Porém, estudando mais sobre MySQL, vi um tipo de coluna que eu não conhecia.. O SET.
Eu comecei essa pesquisa porque eu vi que com um número razoável de Pessoas no sistema, minha tabela de relacionamento Atributos poderá ficar enorme com a quantidade de registros...
Existe alguma forma mais eficiente de se montar esses relacionamentos todos? Lembrando que futuramente eu pretendo colocar uma funcionalidade no Front-end onde o visitante poderá filtrar as pessoas por suas características.. Dessa forma, não consigo ver de fato uma outra solução que contemple essa funcionalidade sem ser com essa tabela.. Mas como estou aprendendo ainda, gostaria de outras opiniões da galera que entende do assunto...
Desde já obrigado...
Discussão (3)
Carregando comentários...