コメントを付けることができるいくつかのオブジェクトを持つPHPアプリケーションを開発中です。各コメントに投票することができ、ユーザーは+1または-1(DiggやRedditなど)を与えることができます。今私はuser_idとその投票情報を持っている 'votes'テーブルを持つことを計画していますが、これはうまくいくようです。コメント投票データベース構造のベストプラクティス
実際には、各オブジェクトには数百のコメントがあり、別々のコメントテーブルに格納されています。私はコメントを読み込んだ後、投票を集計し、ユーザーに対して各投票を個別にチェックして、一度だけ投票できるようにしなければならない。これは機能しますが、実際にはデータベース集約的なようです。コメントだけのための多くのクエリです。
これはDB集中度が低い簡単な方法ですか?現在のデータベース構造は最善の方法ですか?
コメントテーブル:
- のuser_id
- のobject_id
- total_votes
投票テーブル:
は、現在のデータベースの構造についてより明確にするために、- comment_id
- のuser_id
- 投票
最終目標:
- は、(ユーザーがMySQLのクエリの少なくとも#で一度だけ各コメントに投票する各オブジェクトを許可します複数コメントあり)
実際には、おかげです! 2つの主キーを持っていると思っても、私の頭を越えていませんでした。 – mdolon