Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Implementieren von Kommentaren und Likes in der Datenbank

Die erweiterbarste Lösung besteht darin, nur eine „Basis“-Tabelle zu haben (verbunden mit „Gefällt mir“, Tags und Kommentaren) und alle anderen Tabellen davon zu „erben“. Das Hinzufügen einer neuen Art von Entität beinhaltet einfach das Hinzufügen einer neuen "geerbten" Tabelle - sie fügt sich dann automatisch in die gesamte Like/Tag/Comment-Maschinerie ein.

Der Entitätsbeziehungsbegriff dafür ist „Kategorie“ (siehe ERwin Methods Guide , Abschnitt:"Subtyp-Beziehungen"). Das Kategoriesymbol ist:

Angenommen, ein Benutzer kann mehrere Entitäten mögen, ein gleiches Tag kann für mehr als eine Entität verwendet werden, aber ein Kommentar ist entitätsspezifisch, Ihr Modell könnte so aussehen:

Übrigens gibt es ungefähr 3 Möglichkeiten, die "ER-Kategorie" zu implementieren:

  • Alle Typen in einer Tabelle.
  • Alle Betontypen in separaten Tabellen.
  • Alle konkreten und abstrakten Typen in separaten Tabellen.

Sofern Sie keine sehr strengen Leistungsanforderungen haben, ist der dritte Ansatz wahrscheinlich der beste (was bedeutet, dass die physischen Tabellen 1:1 mit den Entitäten im obigen Diagramm übereinstimmen).