私のブログタイプのウェブサイトにはポイントシステムがあり、ユーザーはさまざまな方法(コメント/投稿への投票/コメントへの投票など)で貢献することでポイントを獲得できます。ユーザーが獲得したすべてのポイントをMySQLデータベースに効率的に記録するにはどうすればよいですか。
現在、独自のテーブルに次のフィールドを含めることを考えています。
post_id,
giving_user_id,
receiving_user_id,
type,
date_added
さて、明らかに私のサイトが成長し、100万...5億...10億行ある場合、データ型が正しく設定されていれば、このアプローチと構造は実行に永遠にかかることなく持ちこたえることができますか?
ほとんどの場合、テーブルに挿入するだけですが、stackoverflowのユーザー統計ページと同様に、前の20(例)ポイントの授与/差し引きも表示できるようにしたいと考えています。
私にとってより良いかもしれないより効率的な構造はありますか?
更新された情報
はい、それは機能のスタックオーバーフローに非常によく似ています。1人のユーザーがpostidごとに1票を獲得します。@Paul Gregory考え直した後、削除receiving_user_id
する方がはるかに良いアイデアかもしれません。ほとんどの場合、投稿に関連しているからです。