3

投票機能を進めるのに最適なシステムはどれですか?その理由は? ;

  • 投票をデータベーステーブル内に別々に配置し、必要に応じて平均を計算する

  • 1 つの製品に対して 1 つの行しかありません。新しい投票が来たら、その投票フォーム データベースを取得し、再度計算してレコードを更新します。たとえば、製品 1 の投票記録があります。その投票は、データベース内で合計 326 であり、45 人が投票しました。次に、製品 1 に対する 4 の新しい投票を受け取ります。データベースからレコードを取得し、次の関数を実行します。

(326 + 4) / (45 + 1)

次に、合計値 330 と 46 を有権者としてデータベースに再度保存します。

私はいつも最初のオプションを先に進めますが、他の人が何をしているのか知りたいです.

4

3 に答える 3

3

まあ、それは常に、投票に関する追加情報で何をしたいかによって異なります。

たとえば、投票の傾向 (平均が上がっているか下がっているか) を知りたい場合、または投票が比較的古い/新しいか、またはどのユーザーが投票したか (1 人あたり 1 票のチェック) を知りたい場合) etc. etc. 各投票を別のテーブルに保存したい。

気にするのが最終結果だけである場合は、2 番目のオプションの方がはるかに効率的です。

于 2011-06-05T20:20:43.773 に答える
1

人々が2回投票できることを抑制したい場合は、1-row-per-voteとにかくアプローチが必要になるため、最初のオプションをお勧めします。

2 番目のオプションは、パフォーマンスの面で優れている可能性がありますが、それが問題になる場合は、キャッシュ メカニズムを使用するのが簡単です。

于 2011-06-05T20:20:15.907 に答える
0

考慮すべき要素はたくさんあります。アプリケーションサーバーを攻撃して投票数を変更する誰かから防御する必要がありますか? 人々の投票が発見可能であることを懸念していますか? ロック関連のパフォーマンスの問題が心配ですか? これらすべてが決定に影響し、それらに対する答えは特定のシナリオによって大きく異なります。

于 2011-06-05T20:41:17.443 に答える