Former-commit-id: 0994c208a64b100bc99e3e2a3cdd79b2598400cb
This commit is contained in:
Benjamin Kyd
2022-04-08 17:09:12 +01:00
parent 3487e9274e
commit 1267de8406
4 changed files with 47 additions and 157 deletions

111
db/.sql
View File

@@ -1,111 +0,0 @@
CREATE TABLE "public".catagory (
id integer NOT NULL ,
name varchar(100) ,
CONSTRAINT catagory_pkey PRIMARY KEY ( id )
);
CREATE TABLE "public".colour_type (
id integer NOT NULL ,
name varchar(64) ,
CONSTRAINT colour_type_pkey PRIMARY KEY ( id )
);
CREATE TABLE "public".lego_brick_colour (
id integer NOT NULL ,
name varchar(100) ,
hexrgb varchar(6) NOT NULL ,
col_type integer ,
CONSTRAINT lego_brick_colour_pkey PRIMARY KEY ( id )
);
CREATE TABLE "public".lego_set (
id varchar(50) NOT NULL ,
catagory integer ,
name varchar(100) ,
date_released timestamp ,
dimensions_x numeric ,
dimensions_y numeric ,
dimensions_z numeric ,
CONSTRAINT lego_set_pkey PRIMARY KEY ( id )
);
CREATE TABLE "public".lego_set_inventory (
id varchar(50) NOT NULL ,
stock integer NOT NULL ,
price numeric NOT NULL ,
demand_factor numeric NOT NULL ,
backorder boolean ,
backorder_stock integer ,
last_updated timestamp NOT NULL ,
CONSTRAINT lego_set_inventory_pkey PRIMARY KEY ( id )
);
CREATE TABLE "public".lego_set_price_history (
id integer NOT NULL ,
set_id varchar(50) NOT NULL ,
price_point numeric NOT NULL ,
date_point timestamp NOT NULL ,
CONSTRAINT lego_set_price_history_pkey PRIMARY KEY ( id )
);
CREATE TABLE "public".lego_brick (
id varchar(50) NOT NULL ,
name varchar NOT NULL ,
colour integer ,
catagory integer ,
weight numeric ,
dimensions_x integer ,
dimensions_y integer ,
dimensions_z integer ,
date_from timestamp ,
date_to timestamp ,
CONSTRAINT lego_brick_pkey PRIMARY KEY ( id )
);
CREATE TABLE "public".lego_brick_inventory (
id varchar(50) NOT NULL ,
stock integer NOT NULL ,
price numeric NOT NULL ,
demand_factor numeric NOT NULL ,
backorder boolean ,
backorder_stock integer ,
last_updated timestamp NOT NULL ,
CONSTRAINT lego_brick_inventory_pkey PRIMARY KEY ( id )
);
CREATE TABLE "public".lego_brick_price_history (
id integer NOT NULL ,
brick_id varchar(50) NOT NULL ,
price_point numeric NOT NULL ,
date_point timestamp NOT NULL ,
CONSTRAINT lego_brick_price_history_pkey PRIMARY KEY ( id )
);
CREATE TABLE "public".set_descriptor (
id varchar(50) NOT NULL ,
set_id varchar(50) NOT NULL ,
brick_id varchar(50) NOT NULL ,
amount integer ,
CONSTRAINT set_descriptor_pkey PRIMARY KEY ( id )
);
ALTER TABLE "public".lego_brick ADD CONSTRAINT lego_brick_catagory_fkey FOREIGN KEY ( catagory ) REFERENCES "public".catagory( id );
ALTER TABLE "public".lego_brick ADD CONSTRAINT lego_brick_colour_fkey FOREIGN KEY ( colour ) REFERENCES "public".lego_brick_colour( id );
ALTER TABLE "public".lego_brick_colour ADD CONSTRAINT lego_brick_colour_col_type_fkey FOREIGN KEY ( col_type ) REFERENCES "public".colour_type( id );
ALTER TABLE "public".lego_brick_inventory ADD CONSTRAINT lego_brick_inventory_id_fkey FOREIGN KEY ( id ) REFERENCES "public".lego_brick( id );
ALTER TABLE "public".lego_brick_price_history ADD CONSTRAINT lego_brick_price_history_brick_id_fkey FOREIGN KEY ( brick_id ) REFERENCES "public".lego_brick( id );
ALTER TABLE "public".lego_set ADD CONSTRAINT lego_set_catagory_fkey FOREIGN KEY ( catagory ) REFERENCES "public".catagory( id );
ALTER TABLE "public".lego_set_inventory ADD CONSTRAINT lego_set_inventory_id_fkey FOREIGN KEY ( id ) REFERENCES "public".lego_set( id );
ALTER TABLE "public".lego_set_price_history ADD CONSTRAINT lego_set_price_history_set_id_fkey FOREIGN KEY ( set_id ) REFERENCES "public".lego_set( id );
ALTER TABLE "public".set_descriptor ADD CONSTRAINT set_descriptor_brick_id_fkey FOREIGN KEY ( brick_id ) REFERENCES "public".lego_brick( id );
ALTER TABLE "public".set_descriptor ADD CONSTRAINT set_descriptor_set_id_fkey FOREIGN KEY ( set_id ) REFERENCES "public".lego_set( id );

View File

@@ -1,4 +1,4 @@
CREATE TABLE IF NOT EXISTS catagory (
CREATE TABLE IF NOT EXISTS tag (
id INT NOT NULL PRIMARY KEY,
name VARCHAR (100)
);
@@ -18,21 +18,18 @@ CREATE TABLE IF NOT EXISTS lego_brick_colour (
CREATE TABLE IF NOT EXISTS lego_set (
id VARCHAR (50) NOT NULL PRIMARY KEY,
catagory INT, // this needs to be "tags"
name VARCHAR (100),
description TEXT,
date_released TIMESTAMP WITHOUT TIME ZONE,
dimensions_x DECIMAL,
dimensions_y DECIMAL,
dimensions_z DECIMAL,
FOREIGN KEY ( catagory ) REFERENCES catagory( id )
);
CREATE TABLE IF NOT EXISTS lego_brick (
id VARCHAR (50) NOT NULL PRIMARY KEY,
name VARCHAR NOT NULL,
colour INT,
catagory INT,
weight DECIMAL,
dimensions_x INT,
dimensions_y INT,
@@ -40,48 +37,23 @@ CREATE TABLE IF NOT EXISTS lego_brick (
date_from TIMESTAMP WITHOUT TIME ZONE,
date_to TIMESTAMP WITHOUT TIME ZONE,
FOREIGN KEY ( colour ) REFERENCES lego_brick_colour( id ),
FOREIGN KEY ( catagory ) REFERENCES catagory( id )
);
CREATE TABLE IF NOT EXISTS lego_brick_price_history (
id INT NOT NULL PRIMARY KEY,
brick_id VARCHAR (50) NOT NULL,
price_point DECIMAL NOT NULL,
date_point TIMESTAMP WITHOUT TIME ZONE NOT NULL,
FOREIGN KEY ( brick_id ) REFERENCES lego_brick( id )
);
CREATE TABLE IF NOT EXISTS lego_brick_tag (
id VARCHAR (50) NOT NULL PRIMARY KEY,
brick_id VARCHAR (50) NOT NULL
tag INT NOT NULL,
FOREIGN KEY ( brick_id ) REFERENCES lego_brick( id ),
FOREIGN KEY ( tag ) REFERENCES tag( id ),
)
CREATE TABLE IF NOT EXISTS lego_set_price_history (
id INT NOT NULL PRIMARY KEY,
set_id VARCHAR (50) NOT NULL,
price_point DECIMAL NOT NULL,
date_point TIMESTAMP WITHOUT TIME ZONE NOT NULL,
FOREIGN KEY ( set_id ) REFERENCES lego_set( id )
);
CREATE TABLE IF NOT EXISTS lego_brick_inventory (
id VARCHAR (50) NOT NULL,
stock INT NOT NULL,
price DECIMAL NOT NULL,
demand_factor DECIMAL NOT NULL,
backorder BOOLEAN,
backorder_stock INT,
last_updated TIMESTAMP WITHOUT TIME ZONE NOT NULL,
PRIMARY KEY ( id ),
FOREIGN KEY ( id ) REFERENCES lego_brick( id )
);
CREATE TABLE IF NOT EXISTS lego_set_inventory (
id VARCHAR (50) NOT NULL,
stock INT NOT NULL,
price DECIMAL NOT NULL,
demand_factor DECIMAL NOT NULL,
backorder BOOLEAN,
backorder_stock INT,
last_updated TIMESTAMP WITHOUT TIME ZONE NOT NULL,
PRIMARY KEY ( id ),
FOREIGN KEY ( id ) REFERENCES lego_set( id )
);
CREATE TABLE IF NOT EXISTS lego_set_tag (
id VARCHAR (50) NOT NULL PRIMARY KEY,
set_id VARCHAR (50) NOT NULL
tag INT NOT NULL,
FOREIGN KEY ( set_id ) REFERENCES lego_set( id ),
FOREIGN KEY ( tag ) REFERENCES tag( id ),
)
CREATE TABLE IF NOT EXISTS set_descriptor (
id VARCHAR (50) NOT NULL PRIMARY KEY,
@@ -92,4 +64,32 @@ CREATE TABLE IF NOT EXISTS set_descriptor (
FOREIGN KEY ( brick_id ) REFERENCES lego_brick( id )
);
past transactions
CREATE TABLE IF NOT EXISTS lego_brick_inventory (
id VARCHAR (50) NOT NULL PRIMARY KEY,
stock INT NOT NULL,
price DECIMAL NOT NULL,
new_price DECIMAL NOT NULL,
last_updated TIMESTAMP WITHOUT TIME ZONE NOT NULL,
FOREIGN KEY ( id ) REFERENCES lego_brick( id )
);
CREATE TABLE IF NOT EXISTS lego_set_inventory (
id VARCHAR (50) NOT NULL PRIMARY KEY,
stock INT NOT NULL,
price DECIMAL NOT NULL,
new_price DECIMAL NOT NULL,
last_updated TIMESTAMP WITHOUT TIME ZONE NOT NULL,
FOREIGN KEY ( id ) REFERENCES lego_set( id )
);
CREATE TABLE IF NOT EXISTS users (
id VARCHAR (50) NOT NULL PRIMARY KEY,
email text NOT NULL,
first_name text NOT NULL,
last_name text NOT NULL,
address text NOT NULL,
postcode text NOT NULL,
date_created TIMESTAMP WITHOUT TIME ZONE NOT NULL,
date_updated TIMESTAMP WITHOUT TIME ZONE NOT NULL,
);