- 締切済み
テーブル設計について教えてください。
会員サイトでは10個の資料を掲載しており、 会員の方が資料を開いた際にその会員は資料を確認済みという情報を DB上で管理を行いたいのですが、どのようにテーブルを設計したらよいか ご教示いただきますようお願いたします。 視聴済みの判断としては現在から90日以内に1回以上資料を開いた場合としたいです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- sava1
- ベストアンサー率66% (2/3)
回答No.2
安心してください nharasawa様の回答されたテーブルで十分です 数千万レコード、1秒間に100近い更新、リアルタイム表示 これらすべての条件が重ならない限り、別に回数などを記録しなくても 集約関数を使って(GROUP BY)集計(COUNT)すれば、安サーバー、ノートパソコンでも余裕ですw (HAVING句も使えばさらに応用の幅が広がります) 参考 集約関数 http://www.atmarkit.co.jp/fnetwork/rensai/sql03/sql1.html むしろ回数などのデーターを持ってしまうと、回数データの整合性をチェックするために 定期的に内部結合を伴ったクエリを発行しなくてはなりません。 おそらくこちらのほうが厄介です。←まあどんぐりの背比べですがw
- 原沢 信道(@nharasawa)
- ベストアンサー率53% (90/168)
回答No.1
そのテーブルの今後の利用方法によっては、構造を変える必要があります。質問のみで想定した場合は、会員番号、資料番号、確認時間(年月日時分秒ミリ秒)で記憶してゆく方法が一番簡単と思います。
補足
ご回答ありがとうございます。 今後の利用方法としましては、 会員の方が資料を過去に何回開いたかをリスト形式で表示する、 全会員で資料を何回開かれているか、 などを表示したいと想定しております。 その場合、項目として別途カウントの項目を設けるのでしょうか。 よろしくお願いいたします。