Files
rust-imager/migrations/001_initial.sql
2026-03-25 04:49:36 +08:00

48 lines
1.7 KiB
SQL

-- 创建相册表
CREATE TABLE IF NOT EXISTS albums (
id TEXT PRIMARY KEY,
title TEXT NOT NULL,
document TEXT NOT NULL,
description TEXT,
cover_image_id TEXT,
image_count INTEGER NOT NULL DEFAULT 0, -- 新增图片数量字段
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL
);
-- 创建图片表
CREATE TABLE IF NOT EXISTS images (
id TEXT PRIMARY KEY,
album_id TEXT NOT NULL,
filename TEXT NOT NULL,
original_url TEXT,
title TEXT,
description TEXT,
file_size INTEGER NOT NULL,
width INTEGER NOT NULL,
height INTEGER NOT NULL,
mime_type TEXT NOT NULL,
created_at DATETIME NOT NULL,
FOREIGN KEY (album_id) REFERENCES albums(id) ON DELETE CASCADE
);
-- 创建收藏表
CREATE TABLE IF NOT EXISTS favorites (
id TEXT PRIMARY KEY,
user_id TEXT NOT NULL,
image_id TEXT NOT NULL,
album_id TEXT NOT NULL,
created_at DATETIME NOT NULL,
FOREIGN KEY (image_id) REFERENCES images(id) ON DELETE CASCADE,
FOREIGN KEY (album_id) REFERENCES albums(id) ON DELETE CASCADE
);
-- 创建索引以提高查询性能
CREATE INDEX IF NOT EXISTS idx_albums_created_at ON albums(created_at);
CREATE INDEX IF NOT EXISTS idx_images_album_id ON images(album_id);
CREATE INDEX IF NOT EXISTS idx_images_created_at ON images(created_at);
CREATE INDEX IF NOT EXISTS idx_albums_title ON albums(title);
CREATE INDEX IF NOT EXISTS idx_favorites_user_id ON favorites(user_id);
CREATE INDEX IF NOT EXISTS idx_favorites_image_id ON favorites(image_id);
CREATE INDEX IF NOT EXISTS idx_favorites_album_id ON favorites(album_id);
CREATE UNIQUE INDEX IF NOT EXISTS idx_favorites_user_image ON favorites(user_id, image_id);