144 lines
3.1 KiB
SQL
144 lines
3.1 KiB
SQL
CREATE DATABASE 'webshop' CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
|
|
|
|
-- example link: https://fabric.inc/blog/commerce/ecommerce-database-design-example
|
|
|
|
CREATE TABLE 'user'
|
|
(
|
|
id int NOT NULL AUTO_INCREMENT,
|
|
lower_name varchar(255),
|
|
name varchar(255) NOT NULL,
|
|
full_name varchar(255),
|
|
email varchar(255) NOT NULL,
|
|
passwd varchar(255),
|
|
passwd_hash_algo varchar(255),
|
|
is_admin bool,
|
|
created_at timestamp,
|
|
modified_at timestamp,
|
|
PRIMARY KEY (id),
|
|
UNIQUE (email, passwd)
|
|
);
|
|
|
|
CREATE TABLE 'user_address'
|
|
(
|
|
id int,
|
|
user_id int,
|
|
address_line1 varchar(255),
|
|
address_line2 varchar(255),
|
|
city varchar(255),
|
|
postal_code varchar(255),
|
|
country varchar(2),
|
|
telephone varchar(255),
|
|
mobile varchar(255),
|
|
UNIQUE (telephone, mobile, user_id)
|
|
);
|
|
|
|
CREATE TABLE 'user_payment'
|
|
(
|
|
id int,
|
|
user_id int,
|
|
payment_type varchar(255),
|
|
provider varchar(255),
|
|
account_no int,
|
|
expiry date,
|
|
UNIQUE (user_id)
|
|
);
|
|
|
|
CREATE TABLE 'shopping_session'
|
|
(
|
|
id int,
|
|
user_id varchar(255),
|
|
total decimal,
|
|
created_at timestamp,
|
|
modified_at timestamp,
|
|
UNIQUE (user_id)
|
|
);
|
|
|
|
CREATE TABLE 'cart_item'
|
|
(
|
|
id int,
|
|
session_id int,
|
|
product_id int,
|
|
quantity int,
|
|
created_at timestamp,
|
|
modified_at timestamp
|
|
);
|
|
|
|
CREATE TABLE 'payment_details'
|
|
(
|
|
id int,
|
|
order_id int,
|
|
amount int,
|
|
provider varchar(255),
|
|
status varchar(255),
|
|
created_at timestamp,
|
|
modified_at timestamp
|
|
);
|
|
|
|
CREATE TABLE 'order_items'
|
|
(
|
|
id int,
|
|
order_id int,
|
|
product_id int,
|
|
quantity int,
|
|
created_at timestamp,
|
|
modified_at timestamp
|
|
);
|
|
|
|
CREATE TABLE 'order_details'
|
|
(
|
|
id int,
|
|
user_id varchar(255),
|
|
total decimal,
|
|
payment_id int,
|
|
created_at timestamp,
|
|
modified_at timestamp
|
|
);
|
|
|
|
CREATE TABLE 'product'
|
|
(
|
|
id int NOT NULL,
|
|
name varchar(255),
|
|
color varchar(255),
|
|
make varchar(255),
|
|
model varchar(255) NOT NULL,
|
|
engine varchar(255),
|
|
description text,
|
|
category_id int,
|
|
inventory_id int,
|
|
price decimal,
|
|
discount_id int,
|
|
created_at timestamp,
|
|
modified_at timestamp,
|
|
deleted_at timestamp
|
|
);
|
|
|
|
CREATE TABLE 'product_category'
|
|
(
|
|
id int,
|
|
name varchar(255),
|
|
description text,
|
|
created_at timestamp,
|
|
modified_at timestamp,
|
|
deleted_at timestamp
|
|
);
|
|
|
|
CREATE TABLE 'product_inventory'
|
|
(
|
|
id int,
|
|
quantity int,
|
|
created_at timestamp,
|
|
modified_at timestamp,
|
|
deleted_at timestamp
|
|
);
|
|
|
|
CREATE TABLE 'discount'
|
|
(
|
|
id int,
|
|
name varchar(255),
|
|
description text,
|
|
discount_percent decimal,
|
|
active bool,
|
|
created_at timestamp,
|
|
modified_at timestamp,
|
|
deleted_at timestamp
|
|
) |