2

Asp.Net MVC 5 を使用して Web サイトを作成しています。

オンラインストアを持っているとします。各商品にレビューがあります。各アイテムの平均評価をユーザーに表示したいと考えています。何かのようなもの:

                var average = items.Reviews.Average(i => i.Rating);

ただし、ユーザーがアイテムを検索するたびにこの平均を計算するのは、お勧めできません。そこで、どういうわけかこの値をキャッシュすることにしました。私の最初の考えは、プロパティを作成し、テーブルを更新するたびに更新することです。

    public virtual IList<Review> Reviews { get; set; }

    [ScaffoldColumn(false)]
    public double AverageRating { get; set; }

およびコントローラー内(作成用):

item.AverageRating = (item.AverageRating * item.Reviews.Count + review.Rating) / (item.Reviews.Count + 1);

これは良いようですが、これを行うためのより良い方法があるかどうか疑問に思います。あるいは、毎回平均を計算するとウェブサイトのパフォーマンスが低下すると考えるのは間違っているかもしれません。

4

0 に答える 0