75 lines
1.6 KiB
SQL
75 lines
1.6 KiB
SQL
-- P5-5305: add articles
|
|
|
|
CREATE TABLE articles (
|
|
id serial PRIMARY KEY NOT NULL,
|
|
created TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
|
|
published TIMESTAMP WITH TIME ZONE,
|
|
deleted TIMESTAMP WITH TIME ZONE,
|
|
name TEXT
|
|
);
|
|
|
|
|
|
CREATE TABLE article_content (
|
|
id serial NOT NULL,
|
|
article_id INTEGER NOT NULL,
|
|
market_id INTEGER NOT NULL,
|
|
title TEXT,
|
|
preamble TEXT,
|
|
body TEXT,
|
|
body_saved TIMESTAMP WITH TIME ZONE,
|
|
meta_title TEXT,
|
|
meta_description TEXT,
|
|
slug TEXT
|
|
);
|
|
|
|
|
|
ALTER TABLE article_content
|
|
ADD CONSTRAINT article_id
|
|
FOREIGN KEY (article_id)
|
|
REFERENCES articles(id) MATCH SIMPLE;
|
|
|
|
|
|
ALTER TABLE article_content
|
|
ADD CONSTRAINT market_id
|
|
FOREIGN KEY (market_id)
|
|
REFERENCES markets(id) MATCH SIMPLE;
|
|
|
|
|
|
CREATE TABLE article_categories (
|
|
id serial NOT NULL,
|
|
name TEXT
|
|
);
|
|
|
|
|
|
INSERT INTO article_categories (name) VALUES
|
|
('News'),
|
|
('Pressroom'),
|
|
('Interiors'),
|
|
('Trends and inspiration'),
|
|
('Furniture'),
|
|
('Home improvement'),
|
|
('Home decor'),
|
|
('Lighting'),
|
|
('Wall art'),
|
|
('Style guides');
|
|
|
|
|
|
CREATE TABLE article_article_categories (
|
|
article_id INTEGER NOT NULL,
|
|
category_id INTEGER NOT NULL,
|
|
main INTEGER DEFAULT 0,
|
|
PRIMARY KEY (article_id, category_id)
|
|
);
|
|
|
|
|
|
ALTER TABLE article_article_categories
|
|
ADD CONSTRAINT article_id
|
|
FOREIGN KEY (article_id)
|
|
REFERENCES articles(id) MATCH SIMPLE;
|
|
|
|
|
|
ALTER TABLE article_article_categories
|
|
ADD CONSTRAINT category_id
|
|
FOREIGN KEY (category_id)
|
|
REFERENCES article_categories(id) MATCH SIMPLE;
|