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

User and Product Management Schema

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)
84 views3 pages

User and Product Management Schema

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

-- 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