我正在尝试创建购物车购买数据模型。用户可以购买各种东西,例如信用和产品(每个都有一组单独的属性)。成功完成交易后,每次购买的商品都将存储在一个表中(例如分别为积分和购买)。
我想知道的是,当用户进行交易时,我应该遵循哪种方法(列出利弊的方法)
将用户为项目选择的属性存储在临时表中(例如 temp_credit_purchases 和 temp_product_purchases),然后将记录插入到实际表中(信用和购买)
优点
- 所有不成功的事务都可以删除,实际表中不会有很多丢失的自增id
缺点
- 2 个插入和 1 个选择 - 插入比更新更重(在第二种情况下会发生)
在具有临时状态的实际表中插入数据
优点
- 更优化(只有 1 次插入和 1 次更新)
缺点
- 表中会有很多不必要的行,这些行有时会用于在其他面向用户的模块中进行查询(这可能会使查询变慢)。
尽管我能够列出每种方法的优缺点,但我无法做出明确的决定。请帮我考虑一下?