0

全て。

現在、Web サイトの mysql テーブルのデザインを作成しています。以下にそれを見ることができます。私は3つのテーブルを持っています:

  1. tbl_user - ユーザー用。
  2. tbl_session - セッションおよび
  3. tbl_block - ブロック ユーザー向け - 次のように機能します。
    • block == 0ログインできれば、
    • block == 1ログインできない場合: login_number - 増分カウント (デフォルト == 1) ユーザーが 3 回間違ったパスワードを入力すると (login_number == 4)、1 時間ブロックされます (ブロックは「1」に変更され、time_blocked が設定されます)。
    • block == 2その他の理由でログインできない場合。

-- -----------------------------------------------------
-- Table `mydb`.`tbl_user`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `mydb`.`tbl_user` (
  `user_id` INT NOT NULL AUTO_INCREMENT ,
  `username` VARCHAR(200) NULL ,
  `password` VARCHAR(200) NULL ,
  `salt` VARCHAR(200) NULL ,
  `info` VARCHAR(200) NULL ,
  `date_created` DATETIME NULL ,
  PRIMARY KEY (`user_id`) ,
  UNIQUE INDEX `username_UNIQUE` (`username` ASC) )
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `mydb`.`tbl_session`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `mydb`.`tbl_session` (
  `session_id` INT NOT NULL AUTO_INCREMENT ,
  `user_id` VARCHAR(200) NULL ,
  `data` VARCHAR(200) NULL ,
  `info` VARCHAR(200) NULL ,
  `date_created` DATETIME NULL ,
  `date_expired` DATETIME NULL ,
  PRIMARY KEY (`session_id`) ,
  UNIQUE INDEX `user_id_UNIQUE` (`user_id` ASC) )
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `mydb`.`tbl_user_block`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `mydb`.`tbl_user_block` (
  `block_id` INT NOT NULL AUTO_INCREMENT ,
  `user_id` VARCHAR(45) NULL ,
  `block` TINYINT NULL DEFAULT 0 ,
  `login_number` TINYINT NULL DEFAULT 1 ,
  `info` VARCHAR(200) NULL ,
  `date_blocked` DATETIME NULL ,
  PRIMARY KEY (`block_id`) ,
  UNIQUE INDEX `user_id_UNIQUE` (`user_id` ASC) )
ENGINE = InnoDB;

大丈夫ですか?何を改善または変更する必要がありますか?

4

1 に答える 1

1

ブロックされた時間ではなく、ブロック解除された時間を使用します(ブロック解除ロジックを簡素化します)が、あなたが持っているものはあなたが説明するものをサポートしています.

于 2012-09-10T10:49:38.200 に答える