Mysql
 sql >> Base de données >  >> RDS >> Mysql

Implémentation des commentaires et des likes dans la base de données

La solution la plus extensible consiste à n'avoir qu'une seule table "de base" (connectée aux "j'aime", aux tags et aux commentaires), et à en "hériter" toutes les autres tables. L'ajout d'un nouveau type d'entité implique simplement l'ajout d'une nouvelle table "héritée" - elle se connecte ensuite automatiquement à l'ensemble de la machinerie like/tag/comment.

Le terme entité-relation pour cela est "catégorie" (voir le Guide des méthodes ERwin , section :"Relations de sous-type"). Le symbole de la catégorie est :

En supposant qu'un utilisateur puisse aimer plusieurs entités, une même balise peut être utilisée pour plusieurs entités mais un commentaire est spécifique à une entité, votre modèle pourrait ressembler à ceci :

BTW, il existe à peu près 3 façons d'implémenter la "catégorie ER":

  • Tous les types dans un seul tableau.
  • Tous les types de béton dans des tableaux séparés.
  • Tous les types concrets et abstraits dans des tableaux séparés.

À moins que vous n'ayez des exigences de performances très strictes, la troisième approche est probablement la meilleure (ce qui signifie que les tables physiques correspondent 1:1 aux entités du diagramme ci-dessus).