ユーザーがランダムな日付で何かを投稿する基本的なWebサイトを想像してみてください。システムはmysql-phpを使用し、各投稿をテーブルに格納し、tablePostを呼び出し、列に日付(または時刻)を格納します。ユーザーは1日に複数の投稿を投稿できることに注意してください。私が達成したいのは、ユーザーが投稿した過去4日間(またはそれ以上)の日付を取得できるようにすることです。また、投稿情報(postid、posttextなど)も取得されます。出力例は次のとおりです。
-2012-04-25(3投稿、postinfo ...)
-2012-04-12(2投稿、postinfo ...)
-2011-09-12(33投稿、postinfo ...)
-2011-03-04(10件の投稿、postinfo ...)
私は2つの解決策を想像することができます:
1)tablePostテーブルのみを使用し、phpでエントリを反復処理し、必要なデータをフェッチします
2)別のテーブルを作成し、tableActiveDaysを呼び出します。ユーザーが投稿すると、エントリ(userId、dateDay)がINSERT IGNOREを使用して挿入されるか、以前に挿入されていないかどうかがチェックされます。したがって、各(userId、dateDay)は一意です。このように、過去4日間のアクティブな日数を取得する場合は、単純なselect ... order by ... limitby4クエリを使用できます。
私の質問は次のとおり
です。-このタスクを達成する他の方法はありますか?
-これを達成するための最も効率的な方法は何ですか?