为了有效记录和管理《魔兽争霸》录像文件的何利转移信息,可以通过关系型数据库设计一个可追踪的用游移信日志系统。以下是戏数息具体方案和实现建议:
1. 核心数据表设计
1.1 录像信息表 (replays)
存储录像文件元数据:
sql
CREATE TABLE replays (
replay_id INT PRIMARY KEY AUTO_INCREMENT,
file_name VARCHAR(255) NOT NULL UNIQUE, -
file_size BIGINT NOT NULL, -
game_version VARCHAR(20), -
created_at DATETIME NOT NULL, -
map_name VARCHAR(100), -
player_list JSON, -
checksum CHAR(64) -
);
1.2 转移记录表 (transfer_logs)
记录每次转移操作:
sql
CREATE TABLE transfer_logs (
transfer_id INT PRIMARY KEY AUTO_INCREMENT,
replay_id INT NOT NULL,
source_type ENUM('local', 'cloud', 'user_share'), -
source_path VARCHAR(512), -
target_type ENUM('local', 'cloud', 'user_share'),
target_path VARCHAR(512),
transferred_by INT, -
transferred_at DATETIME DEFAULT NOW,
status ENUM('pending', 'success', 'failed'),
error_log TEXT, -
FOREIGN KEY (replay_id) REFERENCES replays(replay_id)
);
2. 关键字段说明
3. 典型操作示例
3.1 上传录像到云存储
sql
INSERT INTO replays (file_name,用游移信 file_size, game_version, created_at, checksum)
VALUES ('2023_final.w3g', 102400, '1.36.1', '2023-10-05 14:30:00', 'a1b2c3...');
INSERT INTO transfer_logs (replay_id, source_type, source_path, target_type, target_path, transferred_by, status)
VALUES (LAST_INSERT_ID, 'local', '/home/user/replays', 'cloud', 's3://bucket/replays', 1001, 'success');
3.2 查询某个录像的传输历史
sql
SELECT
t.transferred_at,
t.source_type,
t.target_type,
u.username AS operator
FROM transfer_logs t
JOIN users u ON t.transferred_by = u.user_id
WHERE t.replay_id = 123;
4. 高级扩展方案
4.1 用户权限管理
添加用户表(users)和权限表(permissions):
sql
CREATE TABLE users (
user_id INT PRIMARY KEY,
username VARCHAR(50) UNIQUE,
role ENUM('admin', 'user', 'guest')
);
CREATE TABLE permissions (
user_id INT,
replay_id INT,
can_download BOOLEAN DEFAULT 0,
FOREIGN KEY (user_id) REFERENCES users(user_id),
FOREIGN KEY (replay_id) REFERENCES replays(replay_id)
);
4.2 自动化脚本示例(Python伪代码)
python
import hashlib
def log_transfer(replay_path, source, target, user_id):
计算文件哈希
with open(replay_path, 'rb') as f:
checksum = hashlib.sha256(f.read).hexdigest
更新数据库
db.execute(
INSERT INTO transfer_logs
(replay_id, source_type, target_type, transferred_by)
VALUES (?, ?, ?, ?)
(get_replay_id(checksum), source, target, user_id))
5. 性能优化建议
6. 应用场景
通过以上设计,可系统化解决魔兽争霸录像文件的传输追踪需求,同时为未来扩展(如跨平台同步)预留接口。