0

I got a poll on my website and 5 stars rating:

1 star - 1 (worst)
2 stars - 2
3 stars - 3
4 stars - 4
5 stars - 5 (best)

Now, how should I store the poll records in MySQL? How to calculate them? Default rate value is 5, but if user would rate it 1 star, it should change this value to 1 instead and then start to calculating it somehow... First I need an idea on how to store the votes in my database. You probably have more experience with that.

4

2 に答える 2

1

投票を別のテーブルに保存すると、誰が投票したかを記録できます。

user_id, topic_id , vote, date今のところ十分でしょう。計算は簡単で、すべての投票の合計をトピックに関連する投票の総数で割ります。これにより、平均が得られます。1〜5として表示したい場合は、それができround()ます。トピックをロードするたびにこの計算を行わないようにするには、トピック テーブルのフィールドにトピックを格納し、投票テーブルにレコードを追加/削除するたびにそのフィールドを更新します。

于 2012-06-08T11:18:52.203 に答える
0

テーブルの整数フィールド (1 から 5) に投票を保存し、他の情報と組み合わせます (たとえば、ユーザーが 1 回だけ投票できるようにするため)。

結果を表示したい場合は、キャスト投票を使用して、たとえば平均やその他の統計を計算します。各投票がキャストされた後に統計を再計算 (および保存) することも可能ですが、投票よりもはるかに多くのページビューがない限り、リソースの使用量が少なくなる可能性があるため、実際には必要ありません。(もちろん、これは静的計算の複雑さにもよります)

于 2012-06-08T11:16:39.750 に答える