产品与产品MySQL中的订单表结构

时间:2017-01-23 08:22:07

标签: mysql database database-design e-commerce

我正在为电子商务系统设计一个数据库,我只是遇到了一个提供情况的情景。我想如果站点管理员从后端删除产品,那么所有与该产品相关的订单也将被删除。如果产品被删除,防止发生这种情况的最佳方法是什么,那么它不应该打扰以前的订单,因为我们必须在订单中显示正在从产品表中提取的产品详细信息。

这些是我目前拥有的三个表,也建立了外键关系。

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 个答案:

答案 0 :(得分:0)

几个选项..

1>删除产品不应该真正删除行,而只是将产品标记为已删除。 - 首选方案


2 - ;您可以使用products表中的代理键作为orders表引用的主/唯一键。删除产品行时(如果必须),则使用选项" on delete set null"对于外键。这里使用代理键只是为了防止订单表中的任何关键信息丢失。