LINUX.ORG.RU

История изменений

Исправление Hoodoo, (текущая версия) :

create table posts (
	p_id integer primary key,
	p_date timestamp default current_timestamp not null,
	p_title string not null,
	p_url string not null,
	p_text_raw text not null,
	p_text_rendered text not null,
	p_visibility boolean not null
);

create table tags (
	t_id integer primary key,
	t_url string not null,
	t_name string not null,
	t_description string,
	t_counter integer
);

create table tags_posts_junction (
	tp_tag integer not null,
	tp_post integer not null,
	foreign key(tp_tag) references tags(t_id),
	foreign key(tp_post) references posts(p_id)
);

create table counters (
	c_tag_id integer not null,
	c_posts_number integer not null
);
-- Примерный запрос страницы:
SELECT * FROM POSTS WHERE p_visibility = ? -- Не показываем черновиков 
	AND p_id IN (SELECT tp_post FROM tags_posts_junction WHERE tp_tag = ( -- Есть возможность выбрать посты по тегу
		SELECT t_id FROM tags WHERE t_url = ?)) -- Тег приходит из url 
ORDER BY p_date DESC LIMIT ? OFFSET ?; -- лимит берётся из глобальной переменной 
-- - количество постов на страницу, оффсет считается из url (page3 -> offset = 40)

Только я есличо не настоящий сварщик.

Исходная версия Hoodoo, :

create table posts (
	p_id integer primary key,
	p_date timestamp default current_timestamp not null,
	p_title string not null,
	p_url string not null,
	p_text_raw text not null,
	p_text_rendered text not null,
	p_visibility boolean not null
);

create table tags (
	t_id integer primary key,
	t_url string not null,
	t_name string not null,
	t_description string,
	t_counter integer
);

create table tags_posts_junction (
	tp_tag integer not null,
	tp_post integer not null,
	foreign key(tp_tag) references tags(t_id),
	foreign key(tp_post) references posts(p_id)
);

create table counters (
	c_tag_id integer not null,
	c_posts_number integer not null
);
-- Примерный запрос страницы:
SELECT * FROM POSTS WHERE p_visibility = ? -- Не показываем черновиков 
	AND p_id IN (SELECT tp_post FROM tags_posts_junction WHERE tp_tag = ( -- Есть возможность выбрать посты по тегу
		SELECT t_id FROM tags WHERE t_url = ?)) -- Тег приходит из url 
ORDER BY p_date DESC LIMIT ? OFFSET ?; -- лимит берётся из глобальной переменной 
-- - количество постов на страницу, оффсет считается из url (page3 -> offset = 40)