目前游戏的数据库设计较为简单,包含两个表
用户信息表User
用来存放玩家数据
- username 玩家用户名
- password 用户密码
- id 主键,自动增长
客户端登录时,验证用户名和密码是否存在于数据库,存在说明用户存在,允许登录,返回登录成功,不能存则返回失败。
CREATE TABLE `Game`.`user` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `unique_username`(`username`)
);
数据表Result
用来存放玩家的战绩
- id 主键
- userid 外键 表示战绩属于哪个用户的
- totalCount总场数
- winCount胜利局数
CREATE TABLE `Game`.`result` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`userid` int(10) NOT NULL COMMENT '表示战绩属于哪个玩家',
`totalcount` int NULL DEFAULT 0 COMMENT '一共游戏局数,默认为0',
`wincount` int NOT NULL DEFAULT 0 COMMENT '游戏胜利局数',
PRIMARY KEY (`id`),
CONSTRAINT `fk_userid` FOREIGN KEY (`userid`) REFERENCES `Game`.`user` (`id`)
);
sql文件Game.sql
/*
Navicat Premium Data Transfer
Source Server : JungleWars
Source Server Type : MySQL
Source Server Version : 80018
Source Host : localhost:3306
Source Schema : Game
Target Server Type : MySQL
Target Server Version : 80018
File Encoding : 65001
Date: 11/07/2020 01:42:07
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for result
-- ----------------------------
DROP TABLE IF EXISTS `result`;
CREATE TABLE `result` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`userid` int(10) NOT NULL COMMENT '表示战绩属于哪个玩家',
`totalcount` int(11) DEFAULT '0' COMMENT '一共游戏局数,默认为0',
`wincount` int(11) NOT NULL DEFAULT '0' COMMENT '游戏胜利局数',
PRIMARY KEY (`id`),
KEY `fk_userid` (`userid`),
CONSTRAINT `fk_userid` FOREIGN KEY (`userid`) REFERENCES `user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
SET FOREIGN_KEY_CHECKS = 1;