0

私は実際に単純な投票システムを持っています。

投票ID、ユーザーID、記事ID

私は今、1 日、1 週間、1 か月、1 年、永久に投票された最高の記事を取得できるようにする必要があります。

DATETIME列を追加してから、mysql関数を使用して投票BETWEENまたは何かを取得し、DATE INTERVALおよびその他のDATE OPERATIONSを使用できます。

また、パフォーマンスの列に「年間通算日」、「年間通算週」、「年間通算月」、「年」を非正規化して格納できると思います。特定の投票を簡単に取得できます。日、または月。

また、カレンダーの観点からそれを行う必要があるかどうかは疑問ですが、「月ごと」は「1から31」ではなく、2か月をまたぐ「12から12」である可能性があることを意味します。

アイデア/フィードバックはありますか?

4

1 に答える 1

1

データを表示する最小単位が 1 日である場合は、DATE 列と SQL クエリから開始して、時間間隔ごとの投票数を決定します。

データ量に対して十分なパフォーマンスが得られない場合は、最適化できます。列を追加する代わりに、別のテーブル構造を使用して、期間ごとの合計を保存することもできます。次に、計算は挿入に対して実行され、すべての選択に対して実行されません。

暦月については、システムの要件によって異なります。

どのオプションを使用する場合でも、ユーザーとサーバーの異なるタイムゾーンの影響を考慮してください。

于 2011-06-25T15:50:36.740 に答える