Skip to content

PostgreSQL #9705

@FIDELISMUTUNGA

Description

@FIDELISMUTUNGA

-- This script was generated by the ERD tool in pgAdmin 4.
-- Please log an issue at https://github.com/pgadmin-org/pgadmin4/issues/new/choose if you find any bugs, including reproduction steps.
BEGIN;

CREATE TABLE IF NOT EXISTS public.age_group
(
age_group_id integer NOT NULL,
age_group character varying(10) COLLATE pg_catalog."default",
CONSTRAINT age_group_pkey PRIMARY KEY (age_group_id)
);

CREATE TABLE IF NOT EXISTS public.brand
(
brand_id integer NOT NULL,
brand_name character varying(50) COLLATE pg_catalog."default",
CONSTRAINT brand_pkey PRIMARY KEY (brand_id)
);

CREATE TABLE IF NOT EXISTS public.category
(
category_id integer NOT NULL,
category_name character varying(50) COLLATE pg_catalog."default",
CONSTRAINT category_pkey PRIMARY KEY (category_id)
);

CREATE TABLE IF NOT EXISTS public.county
(
county_id integer NOT NULL,
county_name character varying(50) COLLATE pg_catalog."default",
CONSTRAINT county_pkey PRIMARY KEY (county_id)
);

CREATE TABLE IF NOT EXISTS public.customer
(
customer_id integer NOT NULL,
name character varying(50) COLLATE pg_catalog."default",
age_group_id integer,
gender_id integer,
town_id integer,
CONSTRAINT customer_pkey PRIMARY KEY (customer_id)
);

CREATE TABLE IF NOT EXISTS public.gender
(
gender_id integer NOT NULL,
gender character varying(10) COLLATE pg_catalog."default",
CONSTRAINT gender_pkey PRIMARY KEY (gender_id)
);

CREATE TABLE IF NOT EXISTS public.manager
(
manager_id integer NOT NULL,
manager_name character varying(50) COLLATE pg_catalog."default",
CONSTRAINT manager_pkey PRIMARY KEY (manager_id)
);

CREATE TABLE IF NOT EXISTS public.month
(
month_id integer NOT NULL,
month_name character varying(20) COLLATE pg_catalog."default",
CONSTRAINT month_pkey PRIMARY KEY (month_id)
);

CREATE TABLE IF NOT EXISTS public.product
(
product_id integer NOT NULL,
product_name character varying(50) COLLATE pg_catalog."default",
category_id integer,
brand_id integer,
CONSTRAINT product_pkey PRIMARY KEY (product_id)
);

CREATE TABLE IF NOT EXISTS public.quarter
(
quarter_id integer NOT NULL,
quarter_name character varying(2) COLLATE pg_catalog."default",
CONSTRAINT quarter_pkey PRIMARY KEY (quarter_id)
);

CREATE TABLE IF NOT EXISTS public.sales_fact
(
transaction_id integer NOT NULL,
customer_id integer,
product_id integer,
time_id integer,
store_id integer,
revenue numeric(10, 2),
units_sold integer,
discount numeric(4, 2),
CONSTRAINT sales_fact_pkey PRIMARY KEY (transaction_id)
);

CREATE TABLE IF NOT EXISTS public.store
(
store_id integer NOT NULL,
store_name character varying(50) COLLATE pg_catalog."default",
town_id integer,
manager_id integer,
CONSTRAINT store_pkey PRIMARY KEY (store_id)
);

CREATE TABLE IF NOT EXISTS public.time_dim
(
time_id integer NOT NULL,
year integer,
quarter_id integer,
month_id integer,
CONSTRAINT time_dim_pkey PRIMARY KEY (time_id)
);

CREATE TABLE IF NOT EXISTS public.town
(
town_id integer NOT NULL,
town_name character varying(50) COLLATE pg_catalog."default",
county_id integer,
CONSTRAINT town_pkey PRIMARY KEY (town_id)
);

ALTER TABLE IF EXISTS public.customer
ADD CONSTRAINT customer_age_group_id_fkey FOREIGN KEY (age_group_id)
REFERENCES public.age_group (age_group_id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION;

ALTER TABLE IF EXISTS public.customer
ADD CONSTRAINT customer_gender_id_fkey FOREIGN KEY (gender_id)
REFERENCES public.gender (gender_id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION;

ALTER TABLE IF EXISTS public.customer
ADD CONSTRAINT customer_town_id_fkey FOREIGN KEY (town_id)
REFERENCES public.town (town_id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION;

ALTER TABLE IF EXISTS public.product
ADD CONSTRAINT product_brand_id_fkey FOREIGN KEY (brand_id)
REFERENCES public.brand (brand_id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION;

ALTER TABLE IF EXISTS public.product
ADD CONSTRAINT product_category_id_fkey FOREIGN KEY (category_id)
REFERENCES public.category (category_id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION;

ALTER TABLE IF EXISTS public.sales_fact
ADD CONSTRAINT sales_fact_customer_id_fkey FOREIGN KEY (customer_id)
REFERENCES public.customer (customer_id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION;

ALTER TABLE IF EXISTS public.sales_fact
ADD CONSTRAINT sales_fact_product_id_fkey FOREIGN KEY (product_id)
REFERENCES public.product (product_id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION;

ALTER TABLE IF EXISTS public.sales_fact
ADD CONSTRAINT sales_fact_store_id_fkey FOREIGN KEY (store_id)
REFERENCES public.store (store_id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION;

ALTER TABLE IF EXISTS public.sales_fact
ADD CONSTRAINT sales_fact_time_id_fkey FOREIGN KEY (time_id)
REFERENCES public.time_dim (time_id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION;

ALTER TABLE IF EXISTS public.store
ADD CONSTRAINT store_manager_id_fkey FOREIGN KEY (manager_id)
REFERENCES public.manager (manager_id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION;

ALTER TABLE IF EXISTS public.store
ADD CONSTRAINT store_town_id_fkey FOREIGN KEY (town_id)
REFERENCES public.town (town_id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION;

ALTER TABLE IF EXISTS public.time_dim
ADD CONSTRAINT time_dim_month_id_fkey FOREIGN KEY (month_id)
REFERENCES public.month (month_id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION;

ALTER TABLE IF EXISTS public.time_dim
ADD CONSTRAINT time_dim_quarter_id_fkey FOREIGN KEY (quarter_id)
REFERENCES public.quarter (quarter_id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION;

ALTER TABLE IF EXISTS public.town
ADD CONSTRAINT town_county_id_fkey FOREIGN KEY (county_id)
REFERENCES public.county (county_id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION;

END;

Metadata

Metadata

Labels

Type

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions