0

userテーブルとpostテーブルがあり、ユーザーが今日投稿した投稿の数をカウントしたい場合、2 つの方法を考えることができます。

1 つ目は、今日作成されpostた に属するレコードの数をカウントする SQL クエリを送信することです。user

2 つ目は、 、、 のcount3 つの列を持つテーブルを用意することです。これにより、ユーザーが投稿を行うと、今日の場合はインクリメントされるか、単純に 1 に設定され、投稿をカウントする必要がある場合は単純に取得されます日付は今日、または 0 と言います。user_idnum_postsdatenum_postsdatenum_posts

両方の方法が実用的であるように思えますが、私はDBがバックエンドでどのように機能するかについてあまり知識がないDBの専門家ではないので、どちらの方法を取るべきかわかりません(ほとんどの人は最初の方法を実装しているようですが) ?)。誰か私にそれについての考えを教えてもらえますか?

4

3 に答える 3

3

2 番目の方法は冗長性が高く、最初の方法でパフォーマンスに問題がある場合を除き、お勧めしません。(冗長性は矛盾を引き起こす可能性があり、rdbms の世界では良くありません。)

于 2013-10-30T13:59:09.443 に答える
2

システム内のユーザーと投稿の数が多すぎない場合は、最初のもので問題ありません。ただし、ユーザーと投稿が多すぎる場合は、2 番目のオプションを検討することをお勧めします。欠点は、データを保存するためにより多くのスペースが必要になることです。

于 2013-10-30T13:58:52.627 に答える
0

投稿数用に別のテーブルを用意するのは冗長です。このテーブルにクエリを実行するか、post テーブルにクエリを実行することで、同じ情報を取得できます。パフォーマンス上の理由からどうしても必要でない場合は、これを避けてください。

于 2013-10-30T14:02:10.157 に答える