你能给我一些关于db中这个表结构的建议吗?

时间:2012-09-10 10:39:38

标签: mysql sql

所有

现在我正在为网站创建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您因其他原因无法登录。

  4. -- -----------------------------------------------------
    -- 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;
    

    可以吗?我需要改进或改变什么?

1 个答案:

答案 0 :(得分:1)

我会使用它变为UNBLOCKED的时间而不是它被阻止的时间(简化解锁逻辑),但是你所支持的内容是什么。