-1

私は自分のアプリケーションに簡単な投票システムを設定する必要があります., 私のアプリケーションは投稿された記事とコメントで構成されています. 記事とコメントの両方に投票機能を追加し、同時に最高投票数などに基づいてコメントを並べ替えられるようにしたいと考えています。

次の制限があります。つまり、アプリケーションにはユーザーがログインする必要があるためです。ログインしているユーザーのみが投票でき、次にユーザーは項目に 1 回しか投票できません。ユーザーは、自分が行った投票に賛成票または反対票を投じたり、取り消したりすることができます。

これに適したテーブル設計は何でしょうか。さらに、ソリューションを拡張可能にする必要があります。アドバイスありがとう

4

1 に答える 1

2

usersとテーブルの間に結合テーブルを使用すると思いますarticles

users_articles
  - article_id
  - user_id
  - score
  - date

以下の注意事項とともに:

  • article_id賛成/反対投票される記事への外部キーです
  • user_id投票したユーザーへの外部キーです
  • score投票に応じて +1 または -1 です
  • 主キーは 2 つのarticle_id, user_id列にあります。
  • 記事に投票するユーザーは、このテーブルに 1 行挿入することを意味します。投票をキャンセルすると、その行が削除されます(または、ユーザーが投票したという事実を追跡したい場合は、スコアを 0 に設定します)。


それは記事への投票です。
そしてusers_comments、コメントに対する投票用に別の表を作成します。

于 2011-03-26T12:38:10.090 に答える