mirror of
https://github.com/Lumither/nocturne.git
synced 2026-10-17 10:26:21 +00:00
feat(blog/schema.sql) update
This commit is contained in:
1 file changed
+33
-9
@@ -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);
|
||||||
Reference in new issue
Block a user