• 设计游戏用户信息表


    回顾下Rose要实现的用户登陆模块,具体需求如下:

    • 游戏玩家访问游戏客户端,通过客户端界面输入用户名和密码
    • 在游戏玩家点击确认后,客户端连接至数据库服务器对用户名和密码进行确认,

    如果验证成功,则 玩家可以进入大厅,如果失败,则不允许进入!

    俗话说得好,要开车,先修路!

    请帮Rose设计好相应的数据库表,并插入少量样例数据!

    mysql> create database game_db;   #创建游戏数据库game_db

    mysql> use game_db;   #选择数据库game_db

    mysql> create table users (

     id int(11) unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主键',

     username   varchar(64)  NOT NULL UNIQUE COMMENT '用户名',

     password   varchar(32)  NOT NULL COMMENT '密码',

     nickname   varchar(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:  用来保存用户的基本信息

    更高逼格的设计 分成两个表,用户信息表和用户验证表

    基于以下三方面的原因:

    面向对象方面考虑  - 用户信息和用户验证是两种对象

    性能方面考虑      - 登陆验证的时候列较少,查询速度快。

    安全方面考虑      - 防止在查询用户信息时,把密码也直接查询出来,会容易被攻击和进行恶                                   意操作。

    mysql> create database game_db;   #创建游戏数据库game_db

    mysql> use game_db;   #选择数据库game_db

    mysql> create table users (

     id int(11) unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主键',

     username   varchar(64)  NOT NULL UNIQUE COMMENT '用户名',

     nickname   varchar(64) DEFAULT 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 '外键,对应users表中的id',

    username   varchar(64)  NOT NULL UNIQUE COMMENT '用户名',

    password varchar(32) NOT NULL COMMENT '密码',

    FOREIGN KEY(userid) REFERENCES users(id)

    );

    mysql> insert into users (username, nickname, mobile, age, idno) values('martin', '程咬金', '18684518289', 39, '430623871234567898');

    mysql> insert into user_auths values(1, 'martin', '123456qweQWE');  #密码明文,不安全 

    mysql> insert into user_auths values(1, 'martin', md5('123456qweQWE')); #使用内部函数md5 加密,一亿年马老师都无法破解

  • 相关阅读:
    Base64
    msf手机渗透二(实现外网渗透)
    图片点击出现边框样式(一图出现边框,其他图取消边框)
    算法通关村第十五关——从40亿个数中产生一个不存在的数的处理方法
    Debian11.5设置静态IP 221021记录
    【0109】Linux系统监测工具sysstat介绍
    c语言的编译过程
    Leadshop开源商城小程序源码 – 支持公众号H5
    搜维尔科技:Movella Xsens用于动画,CG,短视频制作案例
    maven创建web项目—war
  • 原文地址:https://blog.csdn.net/m0_65635427/article/details/127937869