2011-10-24 6 views
0

現在、私は作成しているサイトのデータベースを構築中です。しかし、私は問題に遭遇しました。ユーザーが毎日ログインした時間を記録し、8ヶ月、1年、2年などの長時間にわたってその情報を追跡できるようにしたい。データベース設計/構造 - 時間の経過によるデータ収集

私が今考えることができる唯一の方法は、毎年のコラムを作成し、毎日自動的に列を作成することです。しかし、このアイデアはただの私にとっては馬鹿だと思う。私はこれを行うためのよりよい方法が必要であると確信しています、私はちょうど1つ考えることができません。

提案がありますか?

おかげで、 ロブ

+0

質問をより具体的に言い換えると、他のユーザーに役立ちます。たぶん "データベースの設計/構造 - ユーザーのログインデータを収集する"がより良いインデックスになるでしょう。 – steampowered

答えて

1

は、ユーザーがログイン別々あなたがUSER_IDを保存するテーブル、および日時を作成します。

Averytimeユーザがログインするには、このテーブルに新しいレコードを挿入します。

例:ここでは

CREATE TABLE user_activity (
     userid varchar(50), 
     log_in_datetime datetime 
     ); 
+0

ああ、私は日/月/などに基づいてデータを解析できます。私はこれを考えなかったとは信じられません。ありがとうございました!私は今、愚かな感じ:) –

0

は私が私のサイトのいずれかに使用するログインテーブルです。 datetimeはdatetimeまたはtimestampとして記録することができます。 datetimeを使用する場合は、mysqlサーバのタイムゾーンを考慮してください。

十分な情報があります。その後、後でそれを照会することができます。これらの列名のそれぞれは、Google検索で自明である必要があります。

CREATE TABLE `t_login` (
    `id_login` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, 
    `id_user` INT(10) UNSIGNED NOT NULL DEFAULT '0', 
    `id_visit` INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'fk to t_visit', 
    `id_org` INT(10) UNSIGNED NOT NULL DEFAULT '0', 
    `when_attempt` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    `uname_attempt` VARCHAR(100) NOT NULL DEFAULT '' COMMENT 'attempted username' COLLATE 'latin1_swedish_ci', 
    `valid_uname` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'valid username', 
    `valid_uname_pword` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'valid username and valid password together', 
    `pw_hash_attempt` BINARY(32) NOT NULL DEFAULT '\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0', 
    `remote_ip` CHAR(20) NOT NULL DEFAULT '' COLLATE 'latin1_swedish_ci', 
    `user_agent` VARCHAR(2000) NOT NULL DEFAULT '' COLLATE 'latin1_swedish_ci', 
    PRIMARY KEY (`id_login`), 
    INDEX `when_attempt` (`when_attempt`), 
    INDEX `rempte_ip` (`remote_ip`), 
    INDEX `valid_user` (`valid_uname`), 
    INDEX `valid_password` (`valid_uname_pword`), 
    INDEX `username` (`uname_attempt`), 
    INDEX `id_ten` (`id_org`), 
    INDEX `id_user` (`id_user`), 
    INDEX `id_visit` (`id_visit`) 
) 
COLLATE='utf8_general_ci' 
ENGINE=InnoDB 
AUTO_INCREMENT=429; 
+0

恐ろしい!どうもありがとうございました!これも同様に助けになりました! –

関連する問題