人々が好きな色にプラス (+1) またはマイナス (-1) の投票をするサイトを考えてみましょう。私には 2 つのテーブルがあります。
1 つは人々が投票できるすべての色を一覧表示し、2 番目の表は各個人の投票が記録され、その色は何色で、+1 か -1 かを示しています。
特定の色の集計投票を取得することに関しては、色テーブルに集計スコアを含め、人が投票するときに挿入ステートメントと更新ステートメントがあると効率的でしょうか。
INSERT INTO votes (colour,vote) VALUES (red,-1);
UPDATE colours SET score=score-1 WHERE colour='red';
SELECT score FROM colours WHERE colour='red';
または、投票が行われたときに INSERT ステートメントを 1 つだけにして、スコアを取得する方が効率的でしょうか。
SELECT SUM(vote) AS score FROM votes WHERE colour='red';
投票数が非常に少ない場合はオプション#2が最適ですが、投票テーブルが非常に大きい場合はオプション#1の方が良くなりますか?
テーブルのサイズなどに応じて、特定の SQL クエリに一種のランキングを与えるために使用できるツールはありますか?