/ / Um item com várias categorias no DB - banco de dados, design do banco de dados, relacionamento

Um item com várias categorias no banco de dados - banco de dados, design de banco de dados, relacionamento

eu tenho um contacts mesa e um contact_category tabela. Estou tentando refletir na tabela que um contato pode pertencer a várias categorias.

Existe algum padrão de design recomendado paraimplementando isso? O que me vem à mente é apenas criar uma string em um campo adicional para cada contato e concat as categorias a que esse contato pertence.

Por ex .: "cat1,cat3" significaria que um contato pertence a cat1 e cat3

Mas, não existe uma maneira adequada de projetar isso?

Respostas:

2 para resposta № 1

De um modo geral, um campo de texto delimitado por vírgulas com vários valores é uma má ideia no design de banco de dados, na minha opinião raramente humilde.

Eu recomendaria algo assim (eu codifico no SQL Server, de modo que a minha sintaxe será semelhante):

Contact
ID    -- primary key
-- other contact fields
Category
ID    -- primary key
-- other category fields

Contact_Category
Contact_ID    -- foreign key to Contact
Category_ID   -- foreign key to Category

O acima permite que você associe um contato a várias categorias e uma categoria a vários contatos. Deixe-me saber se você tiver alguma dúvida.