blob: 365f9e78d39743774247ecdc704b2731bf3ec77a [file] [log] [blame]
wuchimedes079c1632025-04-02 22:01:20 +08001CREATE TABLE IF NOT EXISTS `users` (
2 user_id INT AUTO_INCREMENT PRIMARY KEY,
3 user_name VARCHAR(255) NOT NULL,
4 password VARCHAR(255) NOT NULL,
wuchimedesa0649c62025-04-05 15:53:39 +08005 email VARCHAR(255) NOT NULL UNIQUE,
6 passkey VARCHAR(255) NOT NULL UNIQUE
wuchimedes079c1632025-04-02 22:01:20 +08007);
8
9CREATE TABLE IF NOT EXISTS `torrents` (
10 torrent_id INT AUTO_INCREMENT PRIMARY KEY,
11 user_id INT NOT NULL,
12 torrent_name VARCHAR(255) NOT NULL,
wuchimedes223bfab2025-04-04 17:16:05 +080013 info_hash BINARY(20) NOT NULL,
wuchimedes079c1632025-04-02 22:01:20 +080014 file_size FLOAT NOT NULL,
wuchimedes079c1632025-04-02 22:01:20 +080015 FOREIGN KEY (user_id) REFERENCES users(user_id)
16);
17
18CREATE TABLE IF NOT EXISTS `peers` (
wuchimedesa0649c62025-04-05 15:53:39 +080019 passkey VARCHAR(255) NOT NULL,
wuchimedes223bfab2025-04-04 17:16:05 +080020 info_hash BINARY(20) NOT NULL,
21 peer_id VARCHAR(20) NOT NULL,
wuchimedes079c1632025-04-02 22:01:20 +080022 ip_address VARCHAR(128) NOT NULL,
23 port INT NOT NULL,
24 uploaded FLOAT NOT NULL,
25 downloaded FLOAT NOT NULL,
wuchimedes223bfab2025-04-04 17:16:05 +080026 last_seen TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
wuchimedesa0649c62025-04-05 15:53:39 +080027 FOREIGN KEY (passkey) REFERENCES users(passkey),
28 PRIMARY KEY (passkey, info_hash, peer_id)
wuchimedes079c1632025-04-02 22:01:20 +080029);