私は単純な正規化されたデータベースを使ってウェブサイトを作っています。合計を非正規化する必要がありますか?
PagesというテーブルとViewsというテーブルがあります。 Pageを表示するたびに、そのViewの一意のレコードがViewsテーブルに記録されます。
サイトにページを表示するときは、簡単なMySQL COUNT()を使用して、表示するビューの数を合計します。
この問題を除いて、データベースの設計はうまくいきます。何千もの中でトップ10のページを取得する方法を失っています。
Pages.views列を追加して各ページの総ビュー数を保持すると、ページテーブルを非正規化する必要がありますか?または、最も多く閲覧された上位10ページを検索する効率的な方法はありますか?
+1パフォーマンスに関する問題が発生するまでは、合計を格納しないことに言及してください。 – Thilo