23

多くのウェブサイトには、投稿を好き
/嫌いにするオプションがあります。
もちろん、ここでも、stackoverflow で。

それで、技術的には大きないいねテーブルですか?

user_id    post_id

user_id - 投票した人
post_id - どの投稿ですか

それだけですか?
大きないいねテーブル?
もっと効率的/洗練されたものはありませんか?

4

2 に答える 2

20

最も基本的なレベルでは、はい、それだけです。

しかし、その後、次のような質問に答えようとして拡大し始めます。

  • ユーザーはこの投稿をどの程度気に入りましたか?
  • 彼らはいつその投稿を気に入りましたか?
  • 彼らはどのようにしてその投稿を見つけたのですか?
  • 彼らは投稿にコメントしましたか?
  • グループ/コミュニティ全体が投稿をどのように気に入っていますか

次に、友人やコミュニティについてのより詳細な質問に答えたいと思うようになります。

于 2012-08-04T12:35:47.090 に答える
9

ご心配は理解できると思います。ページを表示する必要があるたびに COUNT() を発行する必要があります。

確かに、COUNT() の基礎となるこの基本的なテーブルが必要ですが、アクセスごとに COUNT() する必要はありません。

合計テーブルを作成し、トリガーを使用してページが好きまたは嫌いを受け取ったときに更新するか、ストアド プロシージャを呼び出して随時更新します。

それぞれの方法は、異なるサイトのパーソナリティ、つまり、より多くの読み取りまたはより多くの書き込みに対してより適切であると言えますが、好きか嫌いかに関しては、何も前もって見えないことはすでにご存じでしょう。

于 2012-08-04T13:21:34.357 に答える