设计游戏用户信息表

需求:

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

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

第一次代码:

create database game_db;
use game_db;
create table users(
 id int(11) unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT'主键',
 username varchar(64) NOT NULL UNIQUE COMMENT'用户名',
 passwrod 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 COMMENT'身份证号码'
);

第二次代码:

因为一个表这样设计有诸多不合适之处,所以现将该表分为用户信息表和用户验证表

create databae game_db;
use game_db;
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)
);

 分成两个表,用户信息表和用户验证表,是基于下面三方面的原因:

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

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

  安全方面考虑             -防止在查询用户信息时,把密码也直接查询出

总结:这个小demo涵盖了数据库操作和数据表操作等知识点,学到了设计表时候要从面向对象、性能、安全方面考虑。

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值