54 lines
1.4 KiB
SQL
54 lines
1.4 KiB
SQL
CREATE DATABASE IF NOT EXISTS demo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
USE demo;
|
|
|
|
DROP TABLE IF EXISTS order_items;
|
|
DROP TABLE IF EXISTS orders;
|
|
DROP TABLE IF EXISTS users;
|
|
|
|
CREATE TABLE users (
|
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
|
name VARCHAR(64) NOT NULL,
|
|
email VARCHAR(128) NULL,
|
|
status TINYINT NOT NULL DEFAULT 1,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE orders (
|
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
|
user_id INT NOT NULL,
|
|
amount DECIMAL(12,2) NOT NULL DEFAULT 0,
|
|
status VARCHAR(16) NOT NULL DEFAULT 'pending',
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
INDEX idx_orders_user (user_id)
|
|
);
|
|
|
|
CREATE TABLE order_items (
|
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
|
order_id INT NOT NULL,
|
|
sku VARCHAR(64) NOT NULL,
|
|
qty INT NOT NULL DEFAULT 1,
|
|
price DECIMAL(12,2) NOT NULL DEFAULT 0,
|
|
INDEX idx_items_order (order_id)
|
|
);
|
|
|
|
INSERT INTO users (name, email, status) VALUES
|
|
('alice', 'alice@demo.local', 1),
|
|
('bob', 'bob@demo.local', 1),
|
|
('carol', 'carol@demo.local', 1),
|
|
('dave', 'dave@demo.local', 0),
|
|
('erin', 'erin@demo.local', 1);
|
|
|
|
INSERT INTO orders (user_id, amount, status) VALUES
|
|
(1, 99.50, 'paid'),
|
|
(1, 12.00, 'pending'),
|
|
(2, 250.00, 'paid'),
|
|
(3, 8.80, 'cancelled'),
|
|
(5, 41.20, 'paid');
|
|
|
|
INSERT INTO order_items (order_id, sku, qty, price) VALUES
|
|
(1, 'SKU-A', 1, 99.50),
|
|
(2, 'SKU-B', 2, 6.00),
|
|
(3, 'SKU-C', 5, 50.00),
|
|
(4, 'SKU-D', 1, 8.80),
|
|
(5, 'SKU-E', 2, 20.60);
|