Files
mengyaprofile/mengyaprofile-backend/schema.sql
2026-05-16 19:03:34 +08:00

79 lines
2.2 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 萌芽主页站点数据SQLite
PRAGMA foreign_keys = ON;
-- 基本个人信息
CREATE TABLE IF NOT EXISTS profile (
id INTEGER PRIMARY KEY CHECK (id = 1),
favicon TEXT,
nickname TEXT NOT NULL DEFAULT '',
avatar TEXT,
introduction TEXT,
footer TEXT,
site TEXT,
homepage TEXT
);
-- 项目列表
CREATE TABLE IF NOT EXISTS project (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sort_order INTEGER NOT NULL DEFAULT 0,
title TEXT NOT NULL,
description TEXT,
link TEXT,
icon TEXT,
is_admin INTEGER NOT NULL DEFAULT 0 CHECK (is_admin IN (0, 1)),
is_show INTEGER NOT NULL DEFAULT 1 CHECK (is_show IN (0, 1)),
is_develop INTEGER NOT NULL DEFAULT 0 CHECK (is_develop IN (0, 1))
);
-- 项目分类 / 业务标签
CREATE TABLE IF NOT EXISTS project_tag (
id INTEGER PRIMARY KEY AUTOINCREMENT,
project_id INTEGER NOT NULL REFERENCES project (id) ON DELETE CASCADE,
sort_order INTEGER NOT NULL DEFAULT 0,
tag TEXT NOT NULL
);
CREATE INDEX IF NOT EXISTS idx_project_tag_project ON project_tag (project_id, sort_order);
-- 项目技术栈标签(与 project_tag 分开维护)
CREATE TABLE IF NOT EXISTS project_tech_tag (
id INTEGER PRIMARY KEY AUTOINCREMENT,
project_id INTEGER NOT NULL REFERENCES project (id) ON DELETE CASCADE,
sort_order INTEGER NOT NULL DEFAULT 0,
tag TEXT NOT NULL
);
CREATE INDEX IF NOT EXISTS idx_project_tech_tag_project ON project_tech_tag (project_id, sort_order);
-- 联系方式
CREATE TABLE IF NOT EXISTS contact (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sort_order INTEGER NOT NULL DEFAULT 0,
type TEXT NOT NULL,
label TEXT,
value TEXT,
link TEXT,
icon TEXT,
is_show INTEGER NOT NULL DEFAULT 1 CHECK (is_show IN (0, 1))
);
-- 技术栈分类
CREATE TABLE IF NOT EXISTS techstack_section (
id INTEGER PRIMARY KEY CHECK (id = 1),
title TEXT NOT NULL DEFAULT '技术栈'
);
-- 技术栈项
CREATE TABLE IF NOT EXISTS techstack_item (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sort_order INTEGER NOT NULL DEFAULT 0,
name TEXT NOT NULL,
link TEXT,
svg TEXT,
color TEXT,
is_show INTEGER NOT NULL DEFAULT 1 CHECK (is_show IN (0, 1))
);
CREATE INDEX IF NOT EXISTS idx_techstack_item_order ON techstack_item (sort_order, id);