Files
legolog/db/schema.sql
Ben 043deca80d psql
Former-commit-id: f83d45790ae325d96fa505521985e7c5a1b0f48f
2022-02-03 23:11:22 +00:00

92 lines
2.8 KiB
SQL

CREATE TABLE IF NOT EXISTS LegoBrickPriceHistory (
id INT NOT NULL PRIMARY KEY AUTOINCREMENT,
brick_id INT NOT NULL,
price_point DECIMAL NOT NULL,
date_point DATETIME NOT NULL,
FOREIGN KEY ( id ) REFERENCES LegoBrick( id )
);
CREATE TABLE IF NOT EXISTS LegoSetPriceHistory (
id INT NOT NULL PRIMARY KEY AUTOINCREMENT,
set_id INT NOT NULL,
price_point DECIMAL NOT NULL,
date_point DATETIME NOT NULL,
FOREIGN KEY ( id ) REFERENCES LegoSet( id )
);
CREATE TABLE IF NOT EXISTS LegoBrickInventory (
id VARCHAR (50) NOT NULL PRIMARY KEY,
stock INT NOT NULL,
price DECIMAL NOT NULL,
demand_factor DECIMAL NOT NULL,
backorder BOOLEAN,
backorder_stock INT,
last_updated DATETIME NOT NULL
FOREIGN KEY ( id ) REFERENCES LegoBrick( id )
);
CREATE TABLE IF NOT EXISTS LegoSetInventory (
id VARCHAR (50) NOT NULL PRIMARY KEY,
stock INT NOT NULL,
price DECIMAL NOT NULL,
demand_factor DECIMAL NOT NULL,
backorder BOOLEAN,
backorder_stock INT,
last_updated DATETIME NOT NULL
FOREIGN KEY ( id ) REFERENCES LegoSet( id )
);
CREATE TABLE IF NOT EXISTS Catagory (
id INT NOT NULL PRIMARY KEY,
name VARCHAR (100)
);
CREATE TABLE IF NOT EXISTS ColourType (
id INT NOT NULL PRIMARY KEY,
name VARCHAR (64)
);
CREATE TABLE IF NOT EXISTS LegoBrickColour (
id INT NOT NULL PRIMARY KEY,
name VARCHAR (100),
hexrgb VARCHAR (6) NOT NULL,
col_type INT,
FOREIGN KEY ( col_type ) REFERENCES ColourType( id )
);
CREATE TABLE IF NOT EXISTS LegoSet (
id VARCHAR (50) NOT NULL PRIMARY KEY,
catagory INT,
name VARCHAR (100),
date_released DATETIME,
dimensions_x DECIMAL,
dimensions_y DECIMAL,
dimensions_z DECIMAL,
FOREIGN KEY ( catagory ) REFERENCES Catagory( id ),
FOREIGN KEY ( id ) REFERENCES LegoSetInventory( id )
);
CREATE TABLE IF NOT EXISTS LegoBrick (
id VARCHAR (50) NOT NULL PRIMARY KEY,
name TEXT(100) NOT NULL,
colour INT,
catagory INT,
weight DECIMAL,
dimensions_x INT,
dimensions_y INT,
dimensions_z INT,
date_from DATETIME,
date_to DATETIME,
FOREIGN KEY ( colour ) REFERENCES LegoBrickColour( id ),
FOREIGN KEY ( catagory ) REFERENCES Catagory( id )
);
CREATE TABLE IF NOT EXISTS SetDescriptor (
id VARCHAR (50) NOT NULL PRIMARY KEY,
set_id VARCHAR (50) NOT NULL,
brick_id VARCHAR (50) NOT NULL,
amount INT,
FOREIGN KEY ( set_id ) REFERENCES LegoSet( id ),
FOREIGN KEY ( brick_id ) REFERENCES LegoBrick( id )
);