私は、私のケースビールでは、複数のアイテムの平均を計算するために、私の頭を適切なデザインの周りに入れようとしています。ウェブサイトのユーザーはさまざまなビールを見直すことができ、すべてのビールにはそのレビューに基づいて評価(そのビールのすべてのレビューの平均)が与えられます。各ビールのレビューには5つの基準があり、それらの基準は重み付けされ、その特定のレビュー(そのユーザーによる)の総合評価に計算されます。計算と平均を得るためのDB設計
ここには、現在存在する関連モデルのいくつかがあります。私の現在の考え方は、あなたが下記のようにすべてのビールのレビューが自分のテーブルにあるということです。
class Beer(models.Model):
name = models.CharField(max_length=200)
brewer = models.ForeignKey(Brewery)
style = models.ForeignKey(Style)
.....
class Beerrating(models.Model):
thebeer = models.ForeignKey(Beer)
theuser = models.ForeignKey(User)
beerstyle = models.ForeignKey(Style)
criteria1 = models.IntegerField
...
criteria5 = models.IntegerField
overallrating = models.DecimalField
実際の質問は、ビールのすべてのレビューに基づいて全体のビール平均をどのように計算するのですか? Beerモデルでランニングヒットを維持していますか(例:レビュー数と合計点、レビューごとに更新されます)、または平均値をオンザフライで計算していますか?私の現在のdbデザインの方法はマークから外れていますか?
私はトップビールリスト(最高級ビール100点)も計算しますので、これは別の計算で評価します。
ご迷惑をおかけして申し訳ありません。これは私の最初のWebアプリケーションですので、私のnoob-nessを許してください。私はまだデータベースを選択していないので、MYSQLやPostgresSQLが何らかの形で他のものより優れている場合は、あなたの好みを提供してください。私はそれらの2つのDBの間で選択します。私もDjangoを使用しています。ありがとうございました。
ありがとうございました!私は1.1が最近出てきたことを知っていましたが、私はまだそれと遊んでいませんでした。私は今、正当な理由があるように見えます。 – kfordham281