CREATE TABLE order_main ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, order_no VARCHAR(64) NOT NULL, user_id BIGINT UNSIGNED NOT NULL, status TINYINT UNSIGNED NOT NULLDEFAULT0, pay_amount DECIMAL(10, 2) NOT NULLDEFAULT0.00, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, PRIMARY KEY (id), UNIQUE KEY uk_order_no (order_no), KEY idx_user_id_id (user_id, id), KEY idx_status_id (status, id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
库存表:
1 2 3 4 5 6 7 8 9
CREATE TABLE product_stock ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, product_id BIGINT UNSIGNED NOT NULL, stock INT UNSIGNED NOT NULLDEFAULT0, sold INT UNSIGNED NOT NULLDEFAULT0, updated_at DATETIME NOT NULL, PRIMARY KEY (id), UNIQUE KEY uk_product_id (product_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
幂等表:
1 2 3 4 5 6 7 8 9 10 11 12
CREATE TABLE request_idempotent ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, request_key VARCHAR(128) NOT NULL, biz_type VARCHAR(32) NOT NULL, biz_id VARCHAR(64) NOT NULLDEFAULT'', status TINYINT UNSIGNED NOT NULLDEFAULT0, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, PRIMARY KEY (id), UNIQUE KEY uk_request_key (request_key), KEY idx_biz_type_biz_id (biz_type, biz_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;