История изменений
Исправление 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)