feat(blog/schema.sql) update

This commit is contained in:
lumither committed 2025-04-09 17:37:54 -07:00
1 parent 12d9ddf8b6
commit 27d2c86106
1 file changed
+33 -9
+33 -9
View File
@@ -12,30 +12,54 @@ CREATE TABLE categories
description TEXT DEFAULT '' description TEXT DEFAULT ''
); );
CREATE TABLE post_status
(
id SERIAL PRIMARY KEY,
name VARCHAR(20) UNIQUE NOT NULL
);
INSERT INTO post_status (name)
VALUES ('draft'),
('published'),
('planned'),
('hidden');
CREATE TABLE posts CREATE TABLE posts
( (
id UUID UNIQUE NOT NULL, id UUID PRIMARY KEY,
identifier VARCHAR(100) UNIQUE NOT NULL, identifier VARCHAR(100) UNIQUE NOT NULL,
title VARCHAR(255) NOT NULL, title VARCHAR(255) NOT NULL,
subtitle VARCHAR(255) NOT NULL, subtitle VARCHAR(255) NOT NULL,
published_date DATE NOT NULL, date_created DATE NOT NULL,
last_update DATE, date_updated DATE,
status INTEGER REFERENCES post_status (id) DEFAULT 1 NOT NULL,
content TEXT NOT NULL, content TEXT NOT NULL,
category INTEGER REFERENCES categories (id) NOT NULL
category SERIAL REFERENCES categories (id) NOT NULL
); );
CREATE TABLE post_tag CREATE TABLE post_tag
( (
post UUID REFERENCES posts (id), post UUID REFERENCES posts (id) ON DELETE CASCADE,
tag SERIAL REFERENCES tags (id) tag INTEGER REFERENCES tags (id) ON DELETE CASCADE,
CONSTRAINT post_tag_pk PRIMARY KEY (post, tag)
); );
CREATE TABLE metadata CREATE TABLE metadata
( (
pid UUID REFERENCES posts (id) NOT NULL, pid UUID REFERENCES posts (id) ON DELETE CASCADE NOT NULL,
meta_key VARCHAR(50) NOT NULL, meta_key VARCHAR(50) NOT NULL,
meta_value TEXT NOT NULL, meta_value TEXT NOT NULL,
CONSTRAINT meta_pk PRIMARY KEY (pid, meta_key) CONSTRAINT metadata_pk PRIMARY KEY (pid, meta_key)
); );
-- index
CREATE INDEX idx_tags_name ON tags (name);
CREATE INDEX idx_categories_name ON categories (name);
CREATE INDEX idx_posts_identifier ON posts (identifier);
CREATE INDEX idx_posts_status ON posts (status);
CREATE INDEX idx_posts_category ON posts (category);
CREATE INDEX idx_post_tag_post ON post_tag (post);
CREATE INDEX idx_post_tag_tag ON post_tag (tag);
CREATE INDEX idx_metadata_pid ON metadata (pid);