2011-06-25 8 views
0

私は実際にシンプルな投票システムを持っています。1日、1週間、1か月、または永遠に投票した記事を検索するにはどうすればよいですか?

vote_id、USER_IDは、私は最高の投票日あたりの記事、週、月、年、永遠を取得できるようになりまし必要

をのarticle_id。

私はDATETIME列を追加してから、mysql関数を使ってBETWEENなどを取得し、DATE INTERVALと他の日付演算を使用することができます。

「年式」、「週の年」、「年の月」、「年」を非正規化してパフォーマンスの列に格納できると思うので、簡単にフェッチすることができます与えられた1日または1ヶ月に投票する。

また、カレンダーの観点からする必要があるかどうかは、「1ヶ月あたり」が「1〜31」ではなく、「12〜12」が2モンツを越えることを意味します。

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

+0

あなたのタグはPHPと言いますが、実装するのは簡単ですが、MYSQLソリューションを探しているようです。あなたが問題を複雑にしているようにも聞こえます。 'BETWEEN'だけで何が問題なのですか? – bzlm

+0

毎日の終わりに、新しい合計を出して、それらを焼くだけです。月曜日00.01amに、日曜日に最高の演技家を働かせ、そのデータを保存し、日曜日まで7日間稼働させ、それを焼く、日曜日まで1ヶ月間焼く、1年というように(焼く:貯蔵する、キャッシュする) – Cups

+0

ドン日、月、年を分けることは痛いでしょう。 –

答えて

1

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

データの量が十分でない場合は、最適化することができます。列を追加する代わりに、期間ごとの合計を格納するための異なるテーブル構造を持つこともできます。次に、計算はインサートで実行され、すべての選択では実行されません。

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

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

関連する問題