mysql

 
-- 首先创建客户信息表,因为订单需要关联客户
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的有效性
);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值