产品及服务;MySQL中的Orders表结构
我正在为一个电子商务系统设计一个数据库,我只是被一个场景所困扰。我认为如果站点管理员从后端删除一个产品,那么与该产品相关的所有订单也将被删除。防止这种情况发生的最佳方法是什么?如果产品被删除,那么它不应该干扰以前的订单,因为我们必须在订单中显示从products表获取的产品详细信息 这是我目前拥有的三个表,外键关系也已建立产品及服务;MySQL中的Orders表结构,mysql,database,database-design,e-commerce,Mysql,Database,Database Design,E Commerce,我正在为一个电子商务系统设计一个数据库,我只是被一个场景所困扰。我认为如果站点管理员从后端删除一个产品,那么与该产品相关的所有订单也将被删除。防止这种情况发生的最佳方法是什么?如果产品被删除,那么它不应该干扰以前的订单,因为我们必须在订单中显示从products表获取的产品详细信息 这是我目前拥有的三个表,外键关系也已建立 Products | product_id | name | | 1 | iphone 5s | | 2 | Samsun
Products
| product_id | name |
| 1 | iphone 5s |
| 2 | Samsung S3 |
| 3 | iphone 6s |
Orders
| order_id | customer_id | datetime |
| 1 | 12 | 2015-08-15 |
Order_Product
| order_product_id | order_id | product_id | qty | price |
| 10 | 1 | 2 | 1 | 300.00 |
谢谢没有多少选择
1> 删除产品不应真正删除行,而应将产品标记为已删除。-优先选择权
2>您可以使用products表中的代理键作为orders表引用的主键/唯一键。删除产品行时(如果强制),则使用外键的“on delete set null”选项。这里使用代理键只是为了防止orders表中的任何键信息丢失