MySQL数据库:ftp_FTP
数据库概述
数据库名称:ftp_FTP
用途:存储FTP服务相关的数据,如用户信息、文件传输记录等。
数据表结构
1、users 用户表
user_id (INT, 主键, 自增): 用户ID
username (VARCHAR): 用户名
password (VARCHAR): 密码(加密存储)
email (VARCHAR): 电子邮件地址
create_time (DATETIME): 账号创建时间
last_login (DATETIME): 最后登录时间
2、files 文件表
file_id (INT, 主键, 自增): 文件ID
user_id (INT, 外键): 用户ID
file_name (VARCHAR): 文件名
file_size (BIGINT): 文件大小
upload_time (DATETIME): 上传时间
download_count (INT): 下载次数
file_path (VARCHAR): 文件存储路径
3、transfer_records 传输记录表
record_id (INT, 主键, 自增): 记录ID
user_id (INT, 外键): 用户ID
file_id (INT, 外键): 文件ID
transfer_type (VARCHAR): 传输类型(上传/下载)
transfer_time (DATETIME): 传输时间
ip_address (VARCHAR): 传输IP地址
数据库操作示例
1、创建数据库和表
```sql
CREATE DATABASE ftp_FTP;
USE ftp_FTP;
CREATE TABLE users (
user_id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255),
password VARCHAR(255),
email VARCHAR(255),
create_time DATETIME,
last_login DATETIME
);
CREATE TABLE files (
file_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
file_name VARCHAR(255),
file_size BIGINT,
upload_time DATETIME,
download_count INT,
file_path VARCHAR(255),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
CREATE TABLE transfer_records (
record_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
file_id INT,
transfer_type VARCHAR(50),
transfer_time DATETIME,
ip_address VARCHAR(255),
FOREIGN KEY (user_id) REFERENCES users(user_id),
FOREIGN KEY (file_id) REFERENCES files(file_id)
);
```
2、插入数据
```sql
INSERT INTO users (username, password, email, create_time, last_login) VALUES ('user1', 'pass1', 'user1@example.com', NOW(), NOW());
INSERT INTO files (user_id, file_name, file_size, upload_time, download_count, file_path) VALUES (1, 'example.txt', 1024, NOW(), 0, '/path/to/file/example.txt');
INSERT INTO transfer_records (user_id, file_id, transfer_type, transfer_time, ip_address) VALUES (1, 1, 'upload', NOW(), '192.168.1.1');
```
3、查询数据
```sql
SELECT * FROM users WHERE username = 'user1';
SELECT * FROM files WHERE user_id = 1;
SELECT * FROM transfer_records WHERE user_id = 1;
```
注意事项
密码应加密存储,可以使用MySQL的加密函数如AES_ENCRYPT
和AES_DECRYPT
。
数据库设计时应考虑数据的安全性和完整性,如使用外键约束、设置适当的权限等。
根据实际需求,可能需要添加更多的表和字段,以存储更详细的信息。