首页 > 解决方案 > 删除未更新行的正确方法

问题描述

样品ERD

假设我们以上面的图表为例。一个人可以购买物品,一件物品可以被很多人购买。因此,由于它是 nn 关系,因此我有一个附加表,其中有一个附加列“数量”,表示一个人购买了多少包商品。

现在,假设有一个用户列表,显示他购买了多少物品,他可以删除、编辑现有物品和添加新物品。

我的问题是处理删除/更新功能的最聪明的方法是什么。在我看来,有两种选择:

  1. 删除一个人已购买的所有现有项目 (PersonWithItemAmount) 并插入列表中的所有项目
  2. 添加(onConflict=REPLACE)列表项并在回调中删除所有未插入/更新的所有项目,例如 deleteNotUpdatedItemsWithAmount(personId,List<> updatedIds)

我的两种方法都可以吗,还是有更简单/有效的解决方案?

标签: sqlitesql-updateandroid-sqliteandroid-room

解决方案


推荐阅读