这在 Web 应用程序中是很常见的事情。如果我有一个用户表并且我想跟踪对用户表所做的所有更改,我可以使用数据库插入和更新触发器将这些更改保存在 user_history 表中。
但是如果我有 user_products 表,其中有 user_id 、 product_id 和 cost。当我在系统中添加一个用户时,假设我有两个与该用户关联的产品。因此,我的 user_products 表将为该用户提供两行。
user_id product_id cost
1 10 1000
2 20 2000
现在,如果我转到编辑用户页面并删除产品 1 ,添加产品 3 ,将产品 2 的成本从 2000 更改为 3000。
所以通常我从 user_product 表中删除 user_id 1 的所有记录,然后为新产品做一个新的插入。
所以它不是定期更新,而是删除然后插入。因此,我无法跟踪历史更改。
理想情况下,我想知道我删除了 product 1 ,添加了 product 3 ,将 product 2 的成本从 2000 更改为 3000。
编辑1:-
我不做更新。我正在删除然后插入。所以我正在删除产品 ID 为 2 且成本为 2000 的记录。然后再次插入产品 ID 为 2 但成本为 3000 的记录。所以从技术上讲,它的删除和插入但逻辑上只有成本从 2000 更改为 3000。如果我在执行两者时检查查询它会说我删除了 id 为 2 的产品,然后添加了相同的 id 为 2 的产品。但我希望能够看到成本从 2000 变为 3000