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

时间:2013-09-29 19:29:13

标签: mysql database database-design

之间存在多对多的关系 products& suppliers  (加入表格为products_suppliers)。

由于每个supplier都有一个price product,并且此价格也可能会发生变化,因此我也有以下关系: products_suppliers <-> unit_prices (1:N)

现在,如果我想打破product&amp; a supplier(例如,供应商不再提供产品),我会删除products_suppliers表中的一条记录。但是,这将破坏对该供应商的产品price历史记录的访问权限。

如何正确地做到这一点?

我在删除部分有问题。我不知道如何处理它。请帮忙。

1 个答案:

答案 0 :(得分:0)

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

这可能会强制您在应用程序的其他部分更改查询,但它允许您将该链接保留到价格历史记录表中。它还有一个好处,即如果供应商再次开始运送产品,那么您只需再次更改products_suppliers表中的标志。