删除产品后如何继续使用交易中的数据

时间:2019-01-25 10:07:27

标签: mysql bigdata e-commerce pos

enter image description here

我对已售产品报告中的交易数据有疑问。如果产品已输入交易/订单但有问题的产品已删除,则会发生约束。

如何使交易报告仍可与之前删除的产品一起使用?

谢谢。

2 个答案:

答案 0 :(得分:0)

也许处理这种可能性的最佳方法是在相关表中添加约束,如果存在使用该产品的现有订单,则无法删除该产品行。 ProductsOrder_Items的表定义如下所示:

CREATE TABLE Order_Items (
    order_item_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    order_id INT NOT NULL,
    product_id INT NOT NULL,
    ...
    FOREIGN KEY fk_prod (product_id) REFERENCES Products (product_id)
)

CREATE TABLE Products (
    product_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    product_name VARCHAR(255) NOT NULL,
    ...
)

采用这种设计后,如果有人尝试从Products表中删除产品记录,而同时存在一个或多个引用该产品的订单项记录,则删除尝试将失败。

答案 1 :(得分:0)

如果Products表中的一行用于两件事,即用于购买产品和报告历史交易,则您将永远无法删除该行。

您可以通过多种方式进行标记:“ available_for_purchase”,“库存= 0”,“ no_longer_produced”等。