一个订单表,有多种类型,这样设计表感觉很鸡肋啊,查询的是需要一次性联合查询4张表,感觉不太对劲呢,你们觉得应该如何设计表?不使用ES 的情况下如何设计?
CREATE TABLE orders (
id INT PRIMARY KEY AUTO_INCREMENT,
order_type VARCHAR(50) NOT NULL,
order_date DATE NOT NULL,
total_amount DECIMAL(10, 2) NOT NULL
);
普通订单表结构
CREATE TABLE normal_orders (
id INT PRIMARY KEY,
shipping_address VARCHAR(100) NOT NULL,
FOREIGN KEY (id) REFERENCES orders(id)
);
会员订单表结构
CREATE TABLE member_orders (
id INT PRIMARY KEY,
member_id INT NOT NULL,
FOREIGN KEY (id) REFERENCES orders(id),
FOREIGN KEY (member_id) REFERENCES members(id)
);
团购订单表结构
CREATE TABLE group_orders (
id INT PRIMARY KEY,
group_id INT NOT NULL,
discount_amount DECIMAL(10, 2) NOT NULL,
FOREIGN KEY (id) REFERENCES orders(id),
FOREIGN KEY (group_id) REFERENCES groups(id)
);
CREATE TABLE orders (
id INT PRIMARY KEY AUTO_INCREMENT,
order_type VARCHAR(50) NOT NULL,
order_date DATE NOT NULL,
total_amount DECIMAL(10, 2) NOT NULL
);
普通订单表结构
CREATE TABLE normal_orders (
id INT PRIMARY KEY,
shipping_address VARCHAR(100) NOT NULL,
FOREIGN KEY (id) REFERENCES orders(id)
);
会员订单表结构
CREATE TABLE member_orders (
id INT PRIMARY KEY,
member_id INT NOT NULL,
FOREIGN KEY (id) REFERENCES orders(id),
FOREIGN KEY (member_id) REFERENCES members(id)
);
团购订单表结构
CREATE TABLE group_orders (
id INT PRIMARY KEY,
group_id INT NOT NULL,
discount_amount DECIMAL(10, 2) NOT NULL,
FOREIGN KEY (id) REFERENCES orders(id),
FOREIGN KEY (group_id) REFERENCES groups(id)
);
展开
5
点赞