勉強のため、Webアプリを作成しております。
SNS等でよく見かけるいいね機能等を実現するためのデータベース設計で質問です。
Twitterを例として想像で挙げますが、
Tweetテーブル(省略)
id | text |
---|---|
id | ツイート内容 |
Favoriteテーブル(省略)
id | user_id | tweet_id |
---|---|---|
id | ユーザーID | ツイートID |
みたいなのがあったとして、あるツイートに対するいいね数は、Favoriteテーブルと結合してカウントで求めているのでしょうか?
それとも、あらかじめTweetテーブルにfavorite_countカラムを用意しておいて、ユーザーがいいねをしたら、favorite_countを増やし、同時にFavoriteテーブルに挿入しているのでしょうか?
(誰がどのツイートにいいねしたか等の情報は欲しい)
前者の場合カウントするのに時間がかかると思うのですが、どちらが一般的なのでしょうか?