29 lines
1.7 KiB
SQL
29 lines
1.7 KiB
SQL
-- DROP TABLE IF EXISTS public.reference CASCADE;
|
|
CREATE TABLE public.reference (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
user_id BIGINT NOT NULL REFERENCES public.user(id),
|
|
uri TEXT NOT NULL UNIQUE,
|
|
created_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
updated_ts TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
CREATE INDEX idx__public__reference__user_id ON public.reference (user_id);
|
|
CREATE INDEX idx__public__reference__created_ts ON public.reference (created_ts);
|
|
CREATE INDEX idx__public__reference__updated_ts ON public.reference (updated_ts);
|
|
|
|
-- DROP TABLE IF EXISTS public.agreement_reference CASCADE;
|
|
CREATE TABLE public.agreement_reference (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
user_id BIGINT NOT NULL REFERENCES public.user(id),
|
|
agreement_id BIGINT NOT NULL REFERENCES public.agreement(id),
|
|
reference_id BIGINT NOT NULL REFERENCES public.reference(id),
|
|
created_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
updated_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
CONSTRAINT uniq__agreement_reference_id UNIQUE (user_id, agreement_id, reference_id)
|
|
);
|
|
CREATE INDEX idx__public__agreement_reference__user_id ON public.agreement_reference (user_id);
|
|
CREATE INDEX idx__public__agreement_reference__agreement_id ON public.agreement_reference (agreement_id);
|
|
CREATE INDEX idx__public__agreement_reference__reference_id ON public.agreement_reference (reference_id);
|
|
CREATE INDEX idx__public__agreement_reference__created_ts ON public.agreement_reference (created_ts);
|
|
CREATE INDEX idx__public__agreement_reference__updated_ts ON public.agreement_reference (updated_ts);
|
|
|
|
ALTER TABLE public.agreement ALTER COLUMN parent DROP NOT NULL; |