作业-设计游戏用户信息表

设计游戏用户信息表

  • 回顾要实现的用户登录模块,具体需求如下:
    • 游戏玩家登录访问游戏客户端,通过客户端界面输入用户名和密码
    • 在游戏玩家点击“确认”后,客户端连接至数据库服务器对用户名和密码进行确认,如果颜验证成功,则 ” 玩家可以进入大厅,如果失败,则不允许进入!“
create database game_db;#创建游戏数据库game_db
use game_db;
create table users(
	id int(11) unsigned PRIMARY KEY AUTO_INCREMENT COMMENT'主键',
    username varchar(64) UNIQUE NOT NULL COMMENT '用户名',
    password varchar(64) NOT NULL COMMENT '密码',
    nickname char(64) DEFAULT NULL COMMENT '昵称',#允许为空
    mobile 	 char(11) DEFAULT NULL COMMENT '手机号码',
    age 	 tinyInt(3) unsigned DEFAULT 18 COMMENT '年龄',
    idno 	 char(18)	DEFAULT NULL COMMENT '身份证号码'
);

作用一:验证用户身份

作用二:用来保存用户的基本信息

  • 更好的设计:分成两个表:用户信息表和用户验证表

    • 原因:

      1. 面向对象方面考虑:用户信息和用户验证是两种“对象”
      2. 性能方面考虑: 登陆验证时的时候列较少,查询速度快。
      3. 安全方面考虑: 防止在查询用户信息时,把密码也直接查询出来,会容易被攻击和进行恶意操作。
    • 实现:

    • create database game_db;#创建游戏数据库game_db
      use game_db;
      create table users(
      	id int(11) unsigned PRIMARY KEY AUTO_INCREMENT COMMENT'主键',
          nickname char(64) DEFAULT NULL COMMENT '昵称',#允许为空
          username varchar(64) UNIQUE NOT NULL COMMENT '用户名',
          mobile 	 char(11) DEFAULT NULL COMMENT '手机号码',
          age 	 tinyInt(3) unsigned DEFAULT 18 COMMENT '年龄',
          idno 	 char(18)	DEFAULT NULL COMMENT '身份证号码'
      );
      create table user_auths(
      	userid int(11) unsigned NOT NULL COMMENT '外键,对应user表中的id',
          username varchar(64) UNIQUE NOT NULL COMMENT '用户名',
      	password varchar(64) NOT NULL COMMENT '密码',
      	FOREIGN KEY(userid) REFERENCES users(id)
      );
      insert into users (username,nickname,mobile,age,idno) values('martin','程咬金',13165306515,19,371721200511178162);
      insert into user_auths values(1,'martin','123456qwe');#密码明文不安全
      insert into user_auths values(1,'martin',md5('123456qwe'));#使用内部函数md5加密,自动变成32位密文
      

      在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值