36 lines
1.4 KiB
SQL
36 lines
1.4 KiB
SQL
-- 创建订单表
|
||
CREATE TABLE IF NOT EXISTS orders (
|
||
id SERIAL PRIMARY KEY,
|
||
order_no VARCHAR(64) UNIQUE NOT NULL,
|
||
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||
product_type VARCHAR(32) NOT NULL,
|
||
product_name VARCHAR(255) NOT NULL,
|
||
amount DECIMAL(10, 2) NOT NULL,
|
||
status VARCHAR(32) NOT NULL DEFAULT 'pending',
|
||
payment_method VARCHAR(32),
|
||
trade_no VARCHAR(128),
|
||
callback_data TEXT,
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
paid_at TIMESTAMP
|
||
);
|
||
|
||
-- 创建索引
|
||
CREATE INDEX IF NOT EXISTS idx_orders_order_no ON orders(order_no);
|
||
CREATE INDEX IF NOT EXISTS idx_orders_user_id ON orders(user_id);
|
||
CREATE INDEX IF NOT EXISTS idx_orders_status ON orders(status);
|
||
CREATE INDEX IF NOT EXISTS idx_orders_created_at ON orders(created_at);
|
||
|
||
-- 添加注释
|
||
COMMENT ON TABLE orders IS '订单表';
|
||
COMMENT ON COLUMN orders.order_no IS '订单号';
|
||
COMMENT ON COLUMN orders.user_id IS '用户ID';
|
||
COMMENT ON COLUMN orders.product_type IS '产品类型:standard/deployment/custom';
|
||
COMMENT ON COLUMN orders.product_name IS '产品名称';
|
||
COMMENT ON COLUMN orders.amount IS '订单金额';
|
||
COMMENT ON COLUMN orders.status IS '订单状态:pending/paid/failed/cancelled';
|
||
COMMENT ON COLUMN orders.payment_method IS '支付方式';
|
||
COMMENT ON COLUMN orders.trade_no IS '第三方交易号';
|
||
COMMENT ON COLUMN orders.callback_data IS '回调数据(JSON格式)';
|
||
|