Ali*_*lov -1 mysql database-design
我对 MySQL 中的订单表设计有疑问。我有 ORDERS 表
Order_id | Customer_id | Total_Price |
--------------------------------------
Run Code Online (Sandbox Code Playgroud)
在另一边我有桌子 PRODUCT
Product_id | Product_name | available_amount
------------------------------------------
Run Code Online (Sandbox Code Playgroud)
一个订单可以包含多个不同的产品。那么,如何更改或更新我的数据库设计,以便我可以有效地访问包含所有产品的任何订单?我应该创建单独的表名 Order_details 吗?你能帮我么?
是的。您将需要创建一个单独的表,就像您提到的那样,将订单及其所有产品放在一起,如下所示:
Order_Product_id | Order_id | Product_id
----------------------------------------
1 | 1 | 1
2 | 1 | 3
3 | 1 | 5
4 | 2 | 3
5 | 3 | 1
6 | 3 | 2
Run Code Online (Sandbox Code Playgroud)
然后你可以得到所有按顺序排列的产品,如下所示:
Select op.Order_id, p.Product_id, p.Product_name
FROM Product p
JOIN Order_Product op ON op.Product_id = p.Product_id
WHERE op.Order_id = 1
Run Code Online (Sandbox Code Playgroud)