设计游戏用户信息表

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 设计游戏用户信息表

回顾下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 加密,一亿年马老师都无法破解


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL 缓存 NoSQL
社交系统中用户好友关系数据库设计
社交系统中用户好友关系数据库设计
1113 0
|
开发者 Python
显示用户功能实现 | 学习笔记
快速学习 显示用户功能实现
72 0
|
开发者 Python
修改用户功能实现 | 学习笔记
快速学习 修改用户功能实现
83 0
|
JSON 前端开发 测试技术
案例03_验证手机唯一性| 学习笔记
快速学习案例03_验证手机唯一性。
121 0
案例03_验证手机唯一性| 学习笔记
|
算法 前端开发 测试技术
测试圈相亲平台开发流程(11):数据层简单实现-个人信息表/择偶要求表
测试圈相亲平台开发流程(11):数据层简单实现-个人信息表/择偶要求表
测试圈相亲平台开发流程(11):数据层简单实现-个人信息表/择偶要求表
|
存储 JSON NoSQL
|
数据可视化 前端开发 Java
servlet+mysql实现的学生评教系统(角色:学生、教师、管理员 功能:评教、修改密码、评教规则管理、评教结果查看、学生管理、教师管理、班级管理、学生信息、评教结果可视化展示等)
servlet+mysql实现的学生评教系统(角色:学生、教师、管理员 功能:评教、修改密码、评教规则管理、评教结果查看、学生管理、教师管理、班级管理、学生信息、评教结果可视化展示等)
servlet+mysql实现的学生评教系统(角色:学生、教师、管理员 功能:评教、修改密码、评教规则管理、评教结果查看、学生管理、教师管理、班级管理、学生信息、评教结果可视化展示等)
|
SQL Java 数据库连接
mybatis练习-获取拥有“普通用户”角色的所有用户信息,要求查询结果除了包含用户自身信息,还包括角色名和角色创建时间。
mybatis练习-获取拥有“普通用户”角色的所有用户信息,要求查询结果除了包含用户自身信息,还包括角色名和角色创建时间。
144 0
mybatis练习-获取拥有“普通用户”角色的所有用户信息,要求查询结果除了包含用户自身信息,还包括角色名和角色创建时间。
浅谈第三方登录用户表结构设计方案
今天就以对接微信登录、QQ登录与苹果登录。来说说对第三方用户体系与我方系统用户体系的对接的一些可行性方案。
1740 0
|
XML Java 网络安全
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(一)
为了更好地掌握SSH的用法,使用一个纳税服务系统来练手…..搭建SSH框架环境在上一篇已经详细地说明了。
101 0
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(一)