mirror of
https://github.com/prdlk/cv.git
synced 2026-08-02 17:31:41 +00:00
91 lines
2.1 KiB
SQL
91 lines
2.1 KiB
SQL
-- CV corpus schema: mirrors the YAML shapes under ../docs.
|
|
CREATE TABLE profile (
|
|
id INTEGER PRIMARY KEY,
|
|
full_name TEXT NOT NULL,
|
|
email TEXT,
|
|
phone TEXT,
|
|
website TEXT,
|
|
linkedin TEXT,
|
|
github TEXT,
|
|
twitter TEXT
|
|
);
|
|
|
|
CREATE TABLE summaries (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
role TEXT NOT NULL,
|
|
summary TEXT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE experience (
|
|
slug TEXT PRIMARY KEY,
|
|
title TEXT NOT NULL,
|
|
company TEXT NOT NULL,
|
|
start_date TEXT NOT NULL,
|
|
end_date TEXT,
|
|
location TEXT,
|
|
profile_heading TEXT
|
|
);
|
|
|
|
CREATE TABLE projects (
|
|
slug TEXT PRIMARY KEY,
|
|
title TEXT NOT NULL,
|
|
start_date TEXT,
|
|
end_date TEXT,
|
|
url TEXT,
|
|
-- slug of the experience (or 'education') this project belongs to
|
|
associated_with TEXT
|
|
);
|
|
|
|
-- One row per "- " bullet from the YAML description block scalars.
|
|
CREATE TABLE bullets (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
parent_type TEXT NOT NULL CHECK (parent_type IN ('experience', 'project')),
|
|
parent_slug TEXT NOT NULL,
|
|
position INTEGER NOT NULL,
|
|
text TEXT NOT NULL
|
|
);
|
|
CREATE INDEX idx_bullets_parent ON bullets (parent_type, parent_slug);
|
|
|
|
-- Canonical skill names attached to experience/project/education entries.
|
|
CREATE TABLE item_skills (
|
|
parent_type TEXT NOT NULL CHECK (parent_type IN ('experience', 'project', 'education')),
|
|
parent_slug TEXT NOT NULL,
|
|
skill TEXT NOT NULL
|
|
);
|
|
CREATE INDEX idx_item_skills_skill ON item_skills (skill);
|
|
|
|
-- The skill inventory (docs/skills/*): languages carry a tier,
|
|
-- frameworks carry a group parsed from the YAML comment headers.
|
|
CREATE TABLE skills (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
name TEXT NOT NULL,
|
|
category TEXT NOT NULL CHECK (category IN ('language', 'framework', 'methodology')),
|
|
grp TEXT,
|
|
tier TEXT,
|
|
position INTEGER NOT NULL
|
|
);
|
|
|
|
CREATE TABLE education (
|
|
id INTEGER PRIMARY KEY,
|
|
school TEXT NOT NULL,
|
|
degree TEXT,
|
|
field TEXT,
|
|
start_date TEXT,
|
|
end_date TEXT,
|
|
activities TEXT
|
|
);
|
|
|
|
CREATE TABLE honors (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
title TEXT NOT NULL,
|
|
date TEXT,
|
|
institution TEXT
|
|
);
|
|
|
|
CREATE TABLE organizations (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
name TEXT NOT NULL,
|
|
url TEXT,
|
|
title TEXT
|
|
);
|