-- 创建图书借阅系统的数据库
CREATE DATABASE IF NOT EXISTS libsys;
 
USE libsys;
 
-- 创建用户表
CREATE TABLE IF NOT EXISTS users (
    user_id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    password VARCHAR(50) NOT NULL,
    email VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
 
-- 创建图书分类表
CREATE TABLE IF NOT EXISTS categories (
    category_id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL
);
 
-- 创建图书表
CREATE TABLE IF NOT EXISTS books (
    book_id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(200) NOT NULL,
    author VARCHAR(100),
    isbn VARCHAR(50) NOT NULL,
    category_id INT NOT NULL,
    publisher VARCHAR(100),
    year YEAR,
    available BOOLEAN DEFAULT TRUE,
    FOREIGN KEY (category_id) REFERENCES categories(category_id)
);
 
-- 创建借书记录表
CREATE TABLE IF NOT EXISTS loans (
    loan_id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    book_id INT NOT NULL,
    loaned_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    returned_at TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(user_id),
    FOREIGN KEY (book_id) REFERENCES books(book_id)
);
这段代码创建了一个名为libsys的数据库,并在其中创建了用户表、图书分类表、图书表和借书记录表。每个表都有适当的数据类型和约束,例如外键约束,以确保数据的完整性和一致性。这是一个简洁而有效的数据库设计示例,适用于初学者学习数据库设计。