2016-04-07 12 views
0

私は多くのユーザーを含むプロジェクトに取り組んでいます。彼らは時間/ログアウト時間(および要約)の詳細をログインしています。彼らの存在の後に見ることができるようにする。 私の質問はおそらくtatデータを保存する最良の方法でしょうか? (何百人、何千人ものユーザーについて話している場合) 1.各ユーザーの表を含むDBを作成するには、すべての日付と時間がありますか? 2.このすべてのデータを含む大きなテーブルを作成するには?mysqlにデータを保存するのに最適な方法は何ですか?

ありがとうございました。

+2

すべてのユーザーに対して1つのテーブル。 – jarlh

+0

お願いしますか? –

+0

ユーザーごとに異なるクエリは必要ありません。 1つのクエリなどで複数のユーザーを検索することができます。 – jarlh

答えて

1

各ユーザーの表は奇妙なアプローチです。

すべてのユーザーのためにテーブルを作成してください。これは正しい方法です。その後

テーブルを作るFOREIGN KEYとしてuser_idactionsと呼ばれ、さらに2つの列:typetime

ユーザーがログインすると、type = 1(ログイン)とactionsテーブルに新しい行を追加し、彼がログアウトすると、type = 2(ログアウト)を追加します。

文字列の代わりに数字を使用すると、データベースの重量が軽減されるため、より効果的です。
同じ文字列を繰り返すのはコストがかかります。

typeの列は、INTタイプでなければなりません。

時間列は、発生時にアクションを記録するため、デフォルト値としてCURRENT_TIMESTAMPを持つことができます。

See a example fiddle with schema and query

関連する問題