\connect postgres drop database if exists pg_graph; create database pg_graph; \connect pg_graph create table roles ( id integer generated by default as identity primary key, name text not null, active boolean not null default true ); create table pictures ( id integer generated by default as identity primary key, title text not null, blob text not null ); create table users ( id integer generated by default as identity primary key, name text not null, age integer, role_id integer not null references roles(id), picture_id integer unique references pictures(id) ); create table blogs ( id integer generated by default as identity primary key, user_id integer not null references users(id), title text not null ); create table posts ( id integer generated by default as identity primary key, blog_id integer not null references blogs(id), head text not null, body text not null, created_at timestamp without time zone default (now() at time zone 'UTC') ); create table comments ( id integer generated by default as identity primary key, post_id integer not null references posts(id), author_id integer not null references users(id), head text not null, body text not null, created_at timestamp without time zone default (now() at time zone 'UTC') ); alter table users add column last_post_id integer unique references posts(id);