cangku/backend/database/yucekj_reconstruction_schema.sql

84 lines
2.2 KiB
SQL

PRAGMA foreign_keys = OFF;
CREATE TABLE IF NOT EXISTS yucekj_reconstruction_site (
site_key TEXT PRIMARY KEY,
host TEXT NOT NULL,
generated_at TEXT,
stack_json TEXT,
source_file TEXT,
created_at TEXT DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS yucekj_reconstruction_page (
page_key TEXT PRIMARY KEY,
name TEXT NOT NULL,
category TEXT NOT NULL,
route TEXT,
chunk TEXT,
status TEXT,
source_file TEXT,
metadata_json TEXT,
created_at TEXT DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS yucekj_reconstruction_route (
route_key TEXT PRIMARY KEY,
page_key TEXT,
path TEXT NOT NULL,
route_name TEXT,
title TEXT,
chunk TEXT,
source_file TEXT,
metadata_json TEXT,
created_at TEXT DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS yucekj_reconstruction_relation (
id INTEGER PRIMARY KEY AUTOINCREMENT,
from_key TEXT NOT NULL,
to_key TEXT NOT NULL,
relation_type TEXT NOT NULL,
sort_order INTEGER DEFAULT 0,
metadata_json TEXT,
created_at TEXT DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS yucekj_reconstruction_api (
id INTEGER PRIMARY KEY AUTOINCREMENT,
scope_key TEXT NOT NULL,
api_name TEXT NOT NULL,
chunk TEXT,
source_file TEXT,
metadata_json TEXT,
created_at TEXT DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS yucekj_reconstruction_artifact (
id INTEGER PRIMARY KEY AUTOINCREMENT,
owner_key TEXT NOT NULL,
artifact_key TEXT,
artifact_type TEXT NOT NULL,
file_path TEXT NOT NULL,
source_file TEXT,
metadata_json TEXT,
created_at TEXT DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX IF NOT EXISTS idx_yucekj_page_category
ON yucekj_reconstruction_page(category);
CREATE INDEX IF NOT EXISTS idx_yucekj_route_page_key
ON yucekj_reconstruction_route(page_key);
CREATE INDEX IF NOT EXISTS idx_yucekj_relation_from_key
ON yucekj_reconstruction_relation(from_key);
CREATE INDEX IF NOT EXISTS idx_yucekj_relation_to_key
ON yucekj_reconstruction_relation(to_key);
CREATE INDEX IF NOT EXISTS idx_yucekj_api_scope_key
ON yucekj_reconstruction_api(scope_key);
CREATE INDEX IF NOT EXISTS idx_yucekj_artifact_owner_key
ON yucekj_reconstruction_artifact(owner_key);