-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy path10-schema.sql
88 lines (81 loc) · 2.81 KB
/
10-schema.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
DROP TABLE IF EXISTS `game_server`;
CREATE TABLE `game_server` (
`id` INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
`hostname` VARCHAR(191) NOT NULL,
`public_name` VARCHAR(191) NOT NULL,
`grpc_port` INTEGER NOT NULL,
`ws_port` INTEGER NOT NULL,
`status` TINYINT NOT NULL,
`heartbeat` BIGINT,
UNIQUE KEY `idx_hostname` (`hostname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DROP TABLE IF EXISTS `hub_server`;
CREATE TABLE `hub_server` (
`id` INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
`hostname` VARCHAR(191) NOT NULL,
`public_name` VARCHAR(191) NOT NULL,
`grpc_port` INTEGER NOT NULL,
`ws_port` INTEGER NOT NULL,
`status` TINYINT NOT NULL,
`heartbeat` BIGINT,
UNIQUE KEY `idx_hostname` (`hostname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DROP TABLE IF EXISTS `app`;
CREATE TABLE app (
`id` VARCHAR(32) COLLATE ascii_bin PRIMARY KEY,
`name` VARCHAR(191) COLLATE utf8mb4_bin,
`key` VARCHAR(191) COLLATE ascii_bin
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DROP TABLE IF EXISTS `room`;
CREATE TABLE room (
`id` VARCHAR(32) PRIMARY KEY,
`app_id` VARCHAR(32) NOT NULL,
`host_id` INTEGER UNSIGNED NOT NULL,
`visible` TINYINT NOT NULL,
`joinable` TINYINT NOT NULL,
`watchable` TINYINT NOT NULL,
`number` INTEGER,
`search_group` INTEGER UNSIGNED NOT NULL,
`max_players` INTEGER UNSIGNED NOT NULL,
`players` INTEGER UNSIGNED NOT NULL,
`watchers` INTEGER UNSIGNED NOT NULL,
`props` BLOB,
`created` DATETIME,
UNIQUE KEY `idx_number` (`number`),
KEY `idx_search_group` (`app_id`, `search_group`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DROP TABLE IF EXISTS `room_history`;
CREATE TABLE `room_history` (
`id` BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
`app_id` VARCHAR(32) NOT NULL,
`host_id` INTEGER UNSIGNED NOT NULL,
`room_id` VARCHAR(32) NOT NULL,
`number` INTEGER,
`search_group` INTEGER UNSIGNED NOT NULL,
`max_players` INTEGER UNSIGNED NOT NULL,
`public_props` BLOB,
`private_props` BLOB,
`created` DATETIME,
`closed` DATETIME,
KEY `room_id` (`room_id`),
KEY `created` (`created`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DROP TABLE IF EXISTS `player_log`;
CREATE TABLE player_log (
`id` BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
`room_id` VARCHAR(32) NOT NULL,
`player_id` VARCHAR(32) NOT NULL,
`message` VARCHAR(32) NOT NULL,
`datetime` DATETIME,
KEY `room_id` (`room_id`),
KEY `player_id` (`player_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DROP TABLE IF EXISTS `hub`;
CREATE TABLE hub (
`id` BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
`host_id` INTEGER UNSIGNED NOT NULL,
`room_id` VARCHAR(32) NOT NULL,
`watchers` INTEGER UNSIGNED NOT NULL,
`created` DATETIME NOT NULL,
UNIQUE KEY `idx_room` (`room_id`, `host_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;