Tables in this schema
suppliersproductswarehousesstock_levelspurchase_orderspurchase_order_items
Schema (SQL)
MySQL-dialect DDL. Open it in the editor for a visual ER diagram you can edit, or copy the SQL straight into your project.
CREATE TABLE suppliers (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(150) NOT NULL,
contact_email VARCHAR(254),
phone VARCHAR(32)
);
CREATE TABLE products (
id INT PRIMARY KEY AUTO_INCREMENT,
sku VARCHAR(64) NOT NULL UNIQUE,
name VARCHAR(200) NOT NULL,
unit_cost DECIMAL(10,2) NOT NULL,
supplier_id INT,
FOREIGN KEY (supplier_id) REFERENCES suppliers(id)
);
CREATE TABLE warehouses (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(120) NOT NULL,
location VARCHAR(200)
);
CREATE TABLE stock_levels (
product_id INT NOT NULL,
warehouse_id INT NOT NULL,
quantity INT NOT NULL DEFAULT 0,
reorder_point INT NOT NULL DEFAULT 0,
PRIMARY KEY (product_id, warehouse_id),
FOREIGN KEY (product_id) REFERENCES products(id),
FOREIGN KEY (warehouse_id) REFERENCES warehouses(id)
);
CREATE TABLE purchase_orders (
id INT PRIMARY KEY AUTO_INCREMENT,
supplier_id INT NOT NULL,
warehouse_id INT NOT NULL,
status VARCHAR(20) NOT NULL,
ordered_at DATETIME NOT NULL,
FOREIGN KEY (supplier_id) REFERENCES suppliers(id),
FOREIGN KEY (warehouse_id) REFERENCES warehouses(id)
);
CREATE TABLE purchase_order_items (
id INT PRIMARY KEY AUTO_INCREMENT,
purchase_order_id INT NOT NULL,
product_id INT NOT NULL,
quantity INT NOT NULL,
unit_cost DECIMAL(10,2) NOT NULL,
FOREIGN KEY (purchase_order_id) REFERENCES purchase_orders(id),
FOREIGN KEY (product_id) REFERENCES products(id)
);