Estou criando um pequeno programa em que os usuários fazem postagens ou escrevem blogs. Nessas postagens, outros usuários podem gostar ou não da postagem como no facebook ou com voto positivo ou negativo na postagem como no stackoverflow. Eu gostaria de conhecer uma boa estrutura de banco de dados que é comumente usada e o programa funciona eficientemente com essa estrutura. Eu tenho duas opções
Primeiro
Postar:
id head message datepost likes dislikes
1 ab anchdg DATE 1,2,3 7,55,44,3
Da maneira acima, id
é o postid. Na coluna de curtidas, 1,2,3
está o ID do usuário que curtiu ou votou positivamente na postagem ou no blog. 7,55,44,3
é o ID dos usuários que não gostaram ou votaram negativamente na postagem ou no blog.
Segundo
Postar:
id head message datepost
1 ab anchdg DATE
Curtidas:
id postid userid
1 1 1
2 2 2
Não gosta:
id postid userid
1 1 7
2 1 55
Dessa forma, eu tenho que criar duas tabelas separadas para curtidas e não curtidas para obter curtidas das postagens. Dessa forma, as tabelas ie Likes
& Dislikes
serão preenchidas intensamente. Isso pode tornar a tabela pesada e o processamento lento.
Então, eu gostaria de saber qual é a melhor e padrão maneira de realizar essa tarefa?