
获得徽章 0
一个订单表,有多种类型,这样设计表感觉很鸡肋啊,查询的是需要一次性联合查询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
点赞
最近用rust 开发过模板引擎,开发过串口助手,最近在做exe 项目,感觉rust 超级带劲呢 ,虽然没有java 的反射,包括没有好的orm 框架,但是用起来感觉挺带劲的,你们感觉呢?
2
点赞
赞了这篇沸点