Ich arbeite an einer Website mit einer einfachen normalisierten Datenbank.Sollten die Summen demormalisiert werden?
Es gibt eine Tabelle namens Pages und eine Tabelle namens Views. Jedes Mal, wenn eine Seite angezeigt wird, wird ein eindeutiger Datensatz dieser Ansicht in der Tabelle "Ansichten" aufgezeichnet.
Beim Anzeigen einer Seite auf der Website verwende ich eine einfache MySQL COUNT(), um die Anzahl der Ansichten für die Anzeige zusammenzufassen.
Datenbank-Design scheint gut, außer für dieses Problem: Ich bin ratlos, wie die Top 10 der am häufigsten angesehenen Seiten unter Tausenden abgerufen werden.
Sollte ich die Pages-Tabelle denormalisieren, indem ich eine Pages.views-Spalte hinzufüge, die die Gesamtzahl der Ansichten für jede Seite enthält? Oder gibt es eine effiziente Möglichkeit, die Top 10 der am häufigsten angesehenen Seiten abzufragen?
+1 für die Erwähnung, die Summen nicht zu speichern, bis ein Leistungsproblem auftritt. – Thilo