数据库准备

这里采用手动创建的方式准备数据库,本项目使用的数据库为MySQL

建数据库

1
2
create database BeautyGoose;
use BeautyGoose;

撞见专门的连接用用户

1
2
3
4
set global validate_password_policy = 'LOW';
create user 'btyGooseUser'@'%' identified by 'BueatyGoose';
grant all on BeautyGoose.* to 'btyGooseUser'@'%';
flush privileges;

建立账户表

因为本项目的重点是功能实现,数据安全目前暂不考虑,所以所有数据采用明文存储的方式

1
2
3
4
5
6
7
8
9
10
11
12
create table account(
uuid varchar(13) unique,
phone varchar(12) unique,
name varchar(10) not null,
password varchar(64) not null,
nickname varchar(32),
level tinyint not null default 0,
icon_data blob,
type tinyint not null default 0,
balance int unsigned default 0
);

建立菜品表

1
2
3
4
5
6
7
8
9
10
11
create table dishes(
uuid varchar(13) unique,
merchant_id varchar(13) not null,
merchant_name varchar(13) not null,
name varchar(10) not null,
icon_path varchar(150),
description text,
base_price decimal(6,2),
price_factor float(4,2) unsigned,
is_delete boolean not null default 1
);

建立订单表

1
2
3
4
5
6
7
8
9
10
11
create table orders(
time timestamp not null,
uuid varchar(13) unique,
merchant_id varchar(13) not null,
merchant_name varchar(10) not null,
consumer_id varchar(13) not null,
consumer_name varchar(10) not null,
level tinyint not null default 0,
pay decimal(10,2) not null default 0,
status tinyint not null default 0
);

建立历史订单表

1
2
3
4
5
6
7
8
9
10
11
create table history(
time timestamp not null,
uuid varchar(13) unique,
merchant_id varchar(13) not null,
merchant_name varchar(10) not null,
consumer_id varchar(13) not null,
consumer_name varchar(10) not null,
level tinyint not null default 0,
pay decimal(10,2) not null default 0,
status tinyint not null default 0
);

建立orderDish表

1
2
3
4
5
6
7
8
create table orderDish(
order_id varchar(13) unique,
dish_id varchar(13) not null,
merchant_id varchar(13) not null,
name varchar(10) not null,
dish_price decimal(6,2),
count int not null default 0
);

建立historyDish表

1
2
3
4
5
6
7
8
create table historyDish(
order_id varchar(13) unique,
dish_id varchar(13) not null,
merchant_id varchar(13) not null,
name varchar(10) not null,
dish_price decimal(6,2),
count int not null default 0
);