哪种情况更有效?

时间:2012-10-28 05:50:48

标签: c++ database

ALL, 我有一个包含一些数据的数据库。 我还有一个与DB通信的C ++应用程序。

哪种情况更有效?

情景1:

  1. 用户点击“编辑数据”按钮。
  2. 程序从数据库中读取数据并将其显示以供编辑
  3. 用户编辑数据并点击“保存”按钮
  4. 程序使用新保存的数据创建新对象,然后与旧对象进行比较。
  5. 程序发出一些UPDATE语句。
  6. 情景2:

    1. 步骤1-3是相同的。
    2. 程序用新数据覆盖旧对象数据。
    3. 在一个事务中编写DELETE / INSERT语句。
    4. 我倾向于说情景2。

1 个答案:

答案 0 :(得分:1)

这是一个有效且交易合理的问题。删除现有对象以执行更新不具有事务性。存在更新以更新数据库中的现有实体。如果您使用的是合成键,则根本无法使用此方法。

在大多数系统中,必须重新获取(至少检查您要提交的对象是否已经从数据库中请求修改)。

步骤4应该读取,从数据库中重新获取对象以确保它没有更改,然后提交更新或回滚。