-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcreate_db.sql
86 lines (77 loc) · 2.75 KB
/
create_db.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
PRAGMA foreign_keys = OFF;
drop table if exists `accounts`;
create table `accounts` (
`personaid` BIGINT PRIMARY KEY NOT NULL,
`remid` varchar(255),
`sid` varchar(255),
`sessionid` char(36),
`originid` varchar(255),
`lastupdate` DATETIME
);
drop table if exists `players`;
create table `players` (
`id` varchar(255) PRIMARY KEY NOT NULL, -- Kook id
`username` varchar(255) NOT NULL, -- all lowercase
`identify_num` INT NOT NULL,
`personaid` BIGINT NOT NULL,
`originid` varchar(255) NOT NULL,
UNIQUE (`username`, `identify_num`) ON CONFLICT REPLACE
);
drop table if exists `server_groups`;
create table `server_groups` (
`name` varchar(32) PRIMARY KEY NOT NULL,
`qq` BIGINT DEFAULT NULL,
`owner` varchar(255) NOT NULL,
FOREIGN KEY (`owner`) REFERENCES `players`(`id`)
);
drop table if exists `servers`;
create table `servers` (
`gameid` BIGINT PRIMARY KEY NOT NULL,
`serverid` char(36) UNIQUE NOT NULL,
`group` varchar(255) NOT NULL,
`group_num` int NOT NULL,
`bf1admin` BIGINT NOT NULL,
FOREIGN KEY(`bf1admin`) REFERENCES `accounts`(`personaid`) ON DELETE RESTRICT,
FOREIGN KEY (`group`) REFERENCES `server_groups`(`name`) ON DELETE CASCADE,
UNIQUE (`group`, `group_num`) ON CONFLICT REPLACE
);
drop table if exists `server_admins`;
create table `server_admins` (
`id` varchar(255) NOT NULL,
`originid` varchar(255) NOT NULL,
`group` varchar(255) NOT NULL,
PRIMARY KEY(`id`, `group`),
FOREIGN KEY (`id`) REFERENCES `players`(`id`) ON DELETE RESTRICT,
FOREIGN KEY (`group`) REFERENCES `server_groups`(`name`) ON DELETE CASCADE
);
drop table if exists `server_bans`;
create table `server_bans` (
`personaid` BIGINT NOT NULL,
`originid` varchar(255) NOT NULL,
`group` varchar(255) NOT NULL,
`gameid` BIGINT NOT NULL,
`reason` varchar(255) DEFAULT NULL,
PRIMARY KEY(`personaid`, `gameid`),
FOREIGN KEY (`group`) REFERENCES `server_groups`(`name`) ON DELETE CASCADE,
FOREIGN KEY (`gameid`) REFERENCES `servers`(`gameid`) ON DELETE CASCADE
);
drop table if exists `server_vips`;
create table `server_vips` (
`personaid` BIGINT NOT NULL,
`originid` varchar(255) NOT NULL,
`gameid` BIGINT NOT NULL,
`expire` DATE DEFAULT NULL,
PRIMARY KEY(`personaid`, `gameid`)
FOREIGN KEY (`gameid`) REFERENCES `servers`(`gameid`) ON DELETE CASCADE
);
-- drop table if exists `admin_logs`;
-- create table `admin_logs` (
-- `logid` INTEGER PRIMARY KEY AUTOINCREMENT,
-- `admin_originid` varchar(255) NOT NULL,
-- `admin_kookusrname` varchar(255) NOT NULL,
-- `player_originid` varchar(255) NOT NULL,
-- `gameid` BIGINT NOT NULL,
-- `operation` varchar(32) NOT NULL,
-- `reason` varchar(255)
-- );
PRAGMA foreign_keys = ON;