mysql - 电商订单系统 不可变订单

标签 mysql database-design e-commerce

我使用经典模式对电子商务系统进行建模。请参见下图:

tables relation

我的问题是:当产品从数据库中删除并且客户已经对该产品下订单时会发生什么? 我使用 InnoDB,所以我对 OrderDetails.productCode (ON DELETE SET NULL)有一个约束,但这不好,因为如果产品被删除,当我显示 orderDetails 项时,我将无法检索有关该产品的信息。

正确的数据库模式是什么?使产品不可变?我的意思是让它们不可删除?

感谢您的帮助

最佳答案

您可以在删除之前检查该产品是否有任何订单,如果有,请使用诸如已删除 = 1 之类的标志将其视为已删除。

关于mysql - 电商订单系统 不可变订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21214374/

相关文章:

wordpress - PayPal Sandbox - 金额与实际购买价格不同?

ruby-on-rails - ROR的电子商务 gem ?

php - 将 WHERE 条件添加到 3 表 LEFT JOIN 查询...?

php - 我需要清理用于声明几何形状的字符串吗?

mysql - 计算 MySQL 和/或 Oracle 中的列访问统计信息

mysql - MySQL中有索引 "hopping"这样的东西吗?

php - 在 PHP 中匹配关键字

MySql-如何获取月份的日期列表

SQL:存储是/否值的最佳方式?关注大型数据库中的性能

python - 卖家电商 : How to batch insert products through python code or API