Mysql 删除导致另一个表中记录丢失的记录

Mysql 删除导致另一个表中记录丢失的记录,mysql,database,database-design,Mysql,Database,Database Design,两者之间存在多对多关系 产品和供应商 (联接表为产品\供应商) 由于每个供应商都有一个产品的价格,并且该价格也可能发生变化,因此我也有以下关系: 产品\供应商单价(1:N) 现在,如果我想打破产品和供应商之间的关系(例如,bec.供应商不再提供产品),我会删除产品_供应商表中的一条记录。但是,这将破坏从该供应商处获取产品的价格历史记录的权限 如何正确地做到这一点 我在删除部分有一个问题。我不知道怎么处理它。请提供帮助。考虑在您的产品\u供应商表中添加一个字段,您可以使用该字段指示产品与供应商的关

两者之间存在多对多关系
产品
供应商
(联接表为
产品\供应商

由于每个
供应商
都有一个
产品
价格
,并且该价格也可能发生变化,因此我也有以下关系:
产品\供应商单价(1:N)

现在,如果我想打破
产品
供应商
之间的关系(例如,bec.供应商不再提供产品),我会删除
产品_供应商
表中的一条记录。但是,这将破坏从该供应商处获取产品的
价格
历史记录的权限

如何正确地做到这一点


我在删除部分有一个问题。我不知道怎么处理它。请提供帮助。

考虑在您的
产品\u供应商
表中添加一个字段,您可以使用该字段指示产品与供应商的关系是否仍处于活动状态。您可以将其称为“活动”,也可以将其逻辑颠倒为“已存档”或“非活动”

这可能会迫使您更改应用程序其他部分中的查询,但它将允许您保留指向价格历史记录表的链接。它还有一个优点,即如果供应商再次开始携带产品,那么您只需再次更改
products\u suppliers
表中的标志