设计游戏用户信息表

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
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 加密,一亿年马老师都无法破解


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
移动开发 前端开发 JavaScript
一些框架获取当前登录用户以及用户信息整理
无论是哪一个框架,获取当前登录用户信息是必不可少的,做一些功能的时候我们肯定得用到当前登陆者信息,所以我就查找了一下几个框架是如何获取当前用户信息,例如在若依框架中,用 this.$store.state.user就可以获取到。当获得的信息是极少时,不足够我们做其他功能时,当然你也可以自己在这个获取的基础上面增加所需信息即可。
一些框架获取当前登录用户以及用户信息整理
|
5月前
|
Java 数据安全/隐私保护 uml
某系统提供了用户信息操作模块,用户可以修改自己的各项信息。为了使操作过程更加人性化,现使用备忘录模式对系统进行改进,使得用户在进行了错误操作之后可以恢复到操作之前的状态。用户信息中包含账号、密码、电话
该博客文章通过Java代码示例介绍了备忘录模式(Memento Pattern)的应用,通过创建备忘录对象保存用户信息的状态,允许用户在进行错误操作后能够恢复到之前的状态。
某系统提供了用户信息操作模块,用户可以修改自己的各项信息。为了使操作过程更加人性化,现使用备忘录模式对系统进行改进,使得用户在进行了错误操作之后可以恢复到操作之前的状态。用户信息中包含账号、密码、电话
|
6月前
|
开发框架 前端开发 JavaScript
电商商品数据库的设计和功能界面的处理
电商商品数据库的设计和功能界面的处理
|
7月前
学生管理系统-登录操作设计
学生管理系统-登录操作设计
52 1
|
存储 缓存 前端开发
用户信息、账号设置。换做是你会怎么做代码实现?
在网站的应用场景下,对于用户的信息展示与账号设置的都是一个绕不过的问题。解决这个问题,最重要的是,怎么拦截未登录用户进入这个功能内?这就意味着必须在每次动态请求时,校验登录状态以及让请求持有用户(在服务器端可查询到对应用户)。当然,我们必须考虑多线程并发的情况,简单地将用户信息放在一个公共的类或者一个容器内,可能会导致数据冲突。现在流行的做法就是利用拦截器去保证动态请求的合法性,而不是在重复造轮子式一次次检查,并且利用 ThreadLocal 进行数据线程隔离保护。本文就将介绍在拦截器的作用下,用户的信息展示与账户设置该如何正确地处理。当然,接下来,也会有更多更有技术力的文章等候着你,欢迎大家
79 0
|
算法 前端开发 测试技术
测试圈相亲平台开发流程(11):数据层简单实现-个人信息表/择偶要求表
测试圈相亲平台开发流程(11):数据层简单实现-个人信息表/择偶要求表
测试圈相亲平台开发流程(11):数据层简单实现-个人信息表/择偶要求表
|
存储 JSON NoSQL
express学习36-多人管理28用户信息展示
express学习36-多人管理28用户信息展示
88 0
|
SQL 数据库
52-学生选课系统数据库-教师信息数据操作
52-学生选课系统数据库-教师信息数据操作
416 0
好好编程-物流项目11【用户管理-修改和删除】
在上文的基础上来完成用户的修改和删除
好好编程-物流项目11【用户管理-修改和删除】