79 lines
2.2 KiB
SQL
79 lines
2.2 KiB
SQL
-- 萌芽主页站点数据(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);
|