0% found this document useful (0 votes)
32 views3 pages

Emon Inventory

Uploaded by

maddycools2
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views3 pages

Emon Inventory

Uploaded by

maddycools2
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

-- User Management

CREATE TABLE Users (


user_id INT PRIMARY KEY,
username VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL
);

CREATE TABLE Addresses (


user_id INT,
address_id INT PRIMARY KEY,
street_address VARCHAR(255) NOT NULL,
city VARCHAR(255) NOT NULL,
state VARCHAR(255),
postal_code VARCHAR(20) NOT NULL,
PRIMARY KEY (user_id, address_id),
FOREIGN KEY (user_id) REFERENCES Users(user_id)
);

-- Product Catalog
CREATE TABLE Products (
product_id INT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
description TEXT,
price DECIMAL(10, 2) NOT NULL,
stock_quantity INT NOT NULL
);

CREATE TABLE Categories (


category_id INT PRIMARY KEY,
name VARCHAR(255) NOT NULL
);

CREATE TABLE Product_Category (


product_id INT,
category_id INT,
PRIMARY KEY (product_id, category_id),
FOREIGN KEY (product_id) REFERENCES Products(product_id),
FOREIGN KEY (category_id) REFERENCES Categories(category_id)
);

-- Order Management
CREATE TABLE Orders (
order_id INT PRIMARY KEY,
user_id INT,
order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
status VARCHAR(50) NOT NULL,
PRIMARY KEY (user_id, order_id),
FOREIGN KEY (user_id) REFERENCES Users(user_id)
);

CREATE TABLE Order_Items (


order_item_id INT PRIMARY KEY,
order_id INT,
product_id INT,
quantity INT NOT NULL,
price DECIMAL(10, 2) NOT NULL,
PRIMARY KEY (order_id, order_item_id),
FOREIGN KEY (order_id) REFERENCES Orders(order_id),
FOREIGN KEY (product_id) REFERENCES Products(product_id)
);

CREATE TABLE Payments (


payment_id INT PRIMARY KEY,
order_id INT,
payment_details TEXT NOT NULL,
PRIMARY KEY (order_id),
FOREIGN KEY (order_id) REFERENCES Orders(order_id)
);

-- Shopping Cart
CREATE TABLE Shopping_Cart (
user_id INT,
product_id INT,
quantity INT NOT NULL,
PRIMARY KEY (user_id, product_id),
FOREIGN KEY (user_id) REFERENCES Users(user_id),
FOREIGN KEY (product_id) REFERENCES Products(product_id)
);

-- Reviews and Ratings


CREATE TABLE Product_Reviews (
review_id INT PRIMARY KEY,
user_id INT,
product_id INT,
rating INT NOT NULL,
comment TEXT,
review_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES Users(user_id),
FOREIGN KEY (product_id) REFERENCES Products(product_id)
);

-- Shipping and Addresses


CREATE TABLE Shipping_Methods (
shipping_method_id INT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
cost DECIMAL(10, 2) NOT NULL
);

CREATE TABLE Order_Shipping (


order_id INT PRIMARY KEY,
shipping_method_id INT,
tracking_info VARCHAR(255),
FOREIGN KEY (order_id) REFERENCES Orders(order_id),
FOREIGN KEY (shipping_method_id) REFERENCES
Shipping_Methods(shipping_method_id)
);

CREATE TABLE User_Addresses (


user_id INT,
address_id INT PRIMARY KEY,
street_address VARCHAR(255) NOT NULL,
city VARCHAR(255) NOT NULL,
state VARCHAR(255),
postal_code VARCHAR(20) NOT NULL,
PRIMARY KEY (user_id, address_id),
FOREIGN KEY (user_id) REFERENCES Users(user_id)
);
-- Promotions and Discounts
CREATE TABLE Promotions (
promotion_id INT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
discount_amount DECIMAL(5, 2) NOT NULL,
start_date TIMESTAMP,
end_date TIMESTAMP
);

CREATE TABLE Product_Promotions (


product_id INT,
promotion_id INT,
PRIMARY KEY (product_id, promotion_id),
FOREIGN KEY (product_id) REFERENCES Products(product_id),
FOREIGN KEY (promotion_id) REFERENCES Promotions(promotion_id)
);

-- Inventory Management
CREATE TABLE Inventory (
product_id INT PRIMARY KEY,
available_quantity INT NOT NULL,
FOREIGN KEY (product_id) REFERENCES Products(product_id)
);

You might also like