2016-03-26 4 views
1

私のLaravelのウェブサイトでは、人々はそれらのようなアイテムにコメントし、数えられる他の活動を行うことができます。それらのカウンターとオーダーアイテムを表示します。どこにPHP + MySQLのウェブサイトにカウンタを保存できますか?

これらのカウンタを保存するには、きれいで効率的な方法はありますか?今のところ、私はデータベースに別々の列を作成しましたが、私はこの考え方の巨大なファンではありません。データベースクライアントでブラウジングするのは快適で効率的ですが、私のデータベースは汚染されているとは言えません。

今日、この問題を解決するウェブサイトはどのようになっていますか?

+1

あなたのアイテムに外来キーを持っている好き/コメントのための別のテーブルがあると思います。なぜなら、特定のアイテムのコメントをすべて選択して "カウント"を保存する必要なしにカウントするのはなぜですか? – kunicmarko20

+0

これはカウントできませんソートのたびに毎回。私はその1つの権利ですか? –

+0

本当に、私が見る唯一の方法は、あなたが言ったことです。コメント/好きの項目にカウント欄があります。 – kunicmarko20

答えて

0

答えはlikeという名前のテーブル(列がpost_iduser_id)を作成することです。
この質問はラーベル自体についてではありませんが、そのような実装の良いexampleが最新のドキュメントで提供されています。

TLDR;
一般に、2つの可能な実装が存在する。私は非常に多くのエンティティ(投稿とコメントを言う)を持っていないときは、post_likecomment_likeという名前の2つのテーブルをpost_id/comment_iduser_idの外部キーで作成することを好みます。異なる好きなエンティティがたくさんある場合は、foreign_iduser_idtypeの列を持つテーブルlikeを1つ作成することをお勧めします。

あなたの投稿を上向き/下向きにしたユーザーの配列を作成することを考えているなら、それをやめて1分ほどで約referential integrityを読んでください。

+0

ちょうど追加する:あなたは本当に大規模なアプリケーションを持っている場合、データベースは性能に関するトリックを行うべきです。 –

+0

ありがとうございますが、これは私の質問についてです。あなたはデータベース設計の基礎を話しますが、私はこの問題に対するより高度な解決策を求めています。 –

+0

@RoboRobokおそらく、データベースではなく列ではなく、別々のテーブルを作成したと言いたいと思っていました。私はあなたの質問を何度か読んできましたが、あなたが探している答えが何であるか分かりません。 –

関連する問題