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

Implementando comentários e curtidas no banco de dados


A solução mais extensível é ter apenas uma tabela "base" (conectada a "curtidas", tags e comentários) e "herdar" todas as outras tabelas dela. Adicionar um novo tipo de entidade envolve apenas adicionar uma nova tabela "herdada" - ela se conecta automaticamente a todo o mecanismo de curtidas/tags/comentários.

O termo entidade-relacionamento para isso é "categoria" (consulte o Guia de métodos ERwin , seção:"Relacionamentos de subtipo"). O símbolo da categoria é:



Supondo que um usuário possa gostar de várias entidades, uma mesma tag pode ser usada para mais de uma entidade, mas um comentário é específico da entidade, seu modelo pode ficar assim:



BTW, existem aproximadamente 3 maneiras de implementar a "categoria ER":
  • Todos os tipos em uma tabela.
  • Todos os tipos concretos em tabelas separadas.
  • Todos os tipos concretos e abstratos em tabelas separadas.

A menos que você tenha requisitos de desempenho muito rigorosos, a terceira abordagem é provavelmente a melhor (o que significa que as tabelas físicas correspondem 1:1 às entidades no diagrama acima).