-- 首先创建客户信息表,因为订单需要关联客户
CREATE TABLE customers (
customer_id INT PRIMARY KEY AUTO_INCREMENT, -- 客户ID,自增主键
name VARCHAR(100) NOT NULL, -- 客户姓名,不能为空
gender ENUM('男', '女') NOT NULL, -- 客户性别,枚举类型,不能为空
contact_number VARCHAR(20) NOT NULL, -- 联系电话,不能为空
email VARCHAR(100) -- 邮箱地址,可以为空
);
-- 接着创建产品信息表,因为订单明细需要关联产品
CREATE TABLE products (
product_id INT PRIMARY KEY AUTO_INCREMENT, -- 产品ID,自增主键
product_name VARCHAR(100) NOT NULL, -- 产品名称,不能为空
price DECIMAL(10, 2) NOT NULL, -- 产品价格,不能为空
stock_quantity INT NOT NULL -- 库存数量,不能为空
);
-- 然后创建订单信息表,因为订单明细和支付、物流信息都需要关联订单
CREATE TABLE orders (
order_id INT PRIMARY KEY AUTO_INCREMENT, -- 订单ID,自增主键
customer_id INT NOT NULL, -- 客户ID,不能为空,外键引用
order_date DATE NOT NULL, -- 订单日期,不能为空
total_amount DECIMAL(10, 2) NOT NULL, -- 订单总金额,不能为空
status ENUM('待支付', '已支付', '已发货', '已完成', '已取消') NOT NULL DEFAULT '待支付', -- 订单状态,默认为待支付
FOREIGN KEY (customer_id) REFERENCES customers(customer_id) -- 外键约束,确保客户ID的有效性
);
-- 创建订单明细表,关联订单和产品
CREATE TABLE order_details (
detail_id INT PRIMARY KEY AUTO_INCREMENT, -- 订单明细ID,自增主键
order_id INT NOT NULL, -- 订单ID,不能为空,外键引用
product_id INT NOT NULL, -- 产品ID,不能为空,外键引用
quantity INT NOT NULL, -- 购买数量,不能为空
unit_price DECIMAL(10, 2) NOT NULL, -- 单价,不能为空
FOREIGN KEY (order_id) REFERENCES orders(order_id), -- 外键约束,确保订单ID的有效性
FOREIGN KEY (product_id) REFERENCES products(product_id) -- 外键约束,确保产品ID的有效性
);
-- 创建支付信息表,关联订单
CREATE TABLE payments (
payment_id INT PRIMARY KEY AUTO_INCREMENT, -- 支付ID,自增主键
order_id INT NOT NULL, -- 订单ID,不能为空,外键引用
payment_method VARCHAR(50) NOT NULL, -- 支付方式,不能为空
payment_status ENUM('未支付', '支付成功', '支付失败') NOT NULL, -- 支付状态,不能为空
payment_date DATE, -- 支付日期,可以为空
FOREIGN KEY (order_id) REFERENCES orders(order_id) -- 外键约束,确保订单ID的有效性
);
-- 最后创建物流信息表,关联订单
CREATE TABLE shipping_details (
shipping_id INT PRIMARY KEY AUTO_INCREMENT, -- 物流ID,自增主键
order_id INT NOT NULL, -- 订单ID,不能为空,外键引用
shipping_status ENUM('未发货', '已发货', '已签收') NOT NULL, -- 物流状态,不能为空
tracking_number VARCHAR(50), -- 物流单号,可以为空
shipping_company VARCHAR(100), -- 物流公司,可以为空
FOREIGN KEY (order_id) REFERENCES orders(order_id) -- 外键约束,确保订单ID的有效性
);
mysql
最新推荐文章于 2024-10-02 06:14:43 发布