PR for #3 #17

Merged
flecomte merged 7 commits from #3 into master 2019-07-26 14:30:44 +02:00
2 changed files with 56 additions and 14 deletions
Showing only changes of commit 8c05072907 - Show all commits

View File

@@ -1,6 +1,12 @@
drop trigger generate_version_number_trigger on article; -- Article & Contitution
drop table article; drop trigger if exists set_constitution_link_trigger on article_on_title;
drop function generate_version_number(regclass, uuid); drop table if exists article_in_title;
drop function set_version_number(); drop table if exists title;
drop trigger generate_version_number_trigger on constitution; drop function if exists set_constitution_link();
drop table constitution;
drop trigger if exists generate_version_number_trigger on article;
drop table if exists article;
drop function if exists generate_version_number(regclass, uuid);
drop trigger if exists generate_version_number_trigger on constitution;
drop table if exists constitution;
drop function if exists set_version_number();

View File

@@ -16,7 +16,7 @@ $$;
create table article create table article
( (
id uuid default uuid_generate_v4() not null, id uuid default uuid_generate_v4() not null primary key,
created_at timestamptz default now() not null, created_at timestamptz default now() not null,
version_id uuid default uuid_generate_v4() not null, version_id uuid default uuid_generate_v4() not null,
version_number int not null, version_number int not null,
@@ -34,7 +34,7 @@ EXECUTE PROCEDURE set_version_number();
create table constitution create table constitution
( (
id uuid default uuid_generate_v4() not null, id uuid default uuid_generate_v4() not null primary key,
created_at timestamptz default now() not null, created_at timestamptz default now() not null,
version_id uuid default uuid_generate_v4() not null, version_id uuid default uuid_generate_v4() not null,
version_number int not null, version_number int not null,
@@ -46,3 +46,39 @@ CREATE TRIGGER generate_version_number_trigger
BEFORE INSERT BEFORE INSERT
ON constitution ON constitution
EXECUTE PROCEDURE set_version_number(); EXECUTE PROCEDURE set_version_number();
create table title
(
id uuid default uuid_generate_v4() not null primary key,
created_at timestamptz default now() not null,
name text not null,
rank int not null,
constitution_id uuid not null references constitution (id)
);
create table article_in_title
(
id uuid default uuid_generate_v4() not null primary key,
created_at timestamptz default now() not null,
rank int not null,
title_id uuid not null references title (id),
article_id uuid not null references article (id),
constitution_id uuid not null references constitution (id)
);
create or replace function set_constitution_link() returns trigger
language plpgsql as
$$
begin
new.constitution_id = (
select t.constitution_id
from title as t
where t.id = new.title_id
);
end;
$$;
CREATE TRIGGER set_constitution_link_trigger
BEFORE INSERT
ON article_in_title
EXECUTE PROCEDURE set_constitution_link();