Projetando um sistema de tags que pode marcar várias tabelas db
Desejo permitir que os usuários etiquetem itens para que eles possam procurá-los usando tags. Qual é a melhor maneira de conseguir isso de maneira limpa? Até agora, a solução que eu encontrei envolve apenas a adição de duas tabelas extras ao meu sistema de banco de dados atual.
<db Trackable product 1>
int id;
info etc
</>
<db Trackable product 2>
int id;
info etc
</>
//defines the M:M relationship between Tag and various types of Trackable products
<db TagLink>
int trackableProd1Id
int trackableProd2Id
int tagId
</>
<db Tag>
int tagId
tag name etc
</>
Essa é uma boa maneira de fazer isso? Um benefício dessa abordagem é que ela deve ser dimensionada bem e também me permite adicionar mais produtos rastreáveis no futuro, simplesmente adicionando uma coluna à tabela TagLink. Obviamente, isso não é uma boa idéia, se eu planejava rastrear 10 das tabelas, mas para 3-4 tabelas ela deve funcionar bem, não deveria?