我正在为电子商务系统设计一个数据库,但我只是陷入了一个带有情况的场景。我认为,如果网站管理员从后端删除产品,那么与该产品相关的所有订单也将被删除。如果产品被删除,防止这种情况发生的最佳方法是什么,那么它不应该干扰以前的订单,因为我们还必须在订单中显示从产品表中获取的产品详细信息。
这是我目前拥有的三个表,并且还建立了外键关系。
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> 您可以使用产品表中的代理键作为订单表引用的主/唯一键。当删除产品行时(如果强制),请使用外键的“删除时设置为空”选项。这里使用代理键只是为了防止订单表中任何关键信息丢失。
关于mysql - MySQL 中的产品和订单表结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41801838/