我必须保持最新的帐户余额、更改日志并使用它。
在我看来,选项是:
- 保持在一行中,
- 使用触发器将更改保存到单独的表中
- 使用 select|update 进行更新
- 使用表中的简单选择来访问值
替代方案是:
- 将值保存在单独的表中,
- 使用 Select Last 和 Insert 来影响更新
- 使用 Select Last 从单独的表中访问值
有谁知道哪个更快?里面有很多吗?
史蒂夫
我必须保持最新的帐户余额、更改日志并使用它。
在我看来,选项是:
替代方案是:
有谁知道哪个更快?里面有很多吗?
史蒂夫
您提出的建议似乎太复杂了...我建议做不同的事情:我将有两个具有主从关系的表。在详细信息中,我将插入行,其触发器将更新主表
balance (account, amount, ...)
balance_detail (account, amount, ...)
balance_detail_after_insert
begin
update master
set amount = amount + new.amount
where account = new.account;
end
balance_detail_after_update
begin
update master
set amount = amount + new.amount - old.amount
where account = new.account;
end
balance_detail_after_delete
begin
update master
set amount = amount - new.amount
where account = new.account;
end
进行任何更改后,您只需关闭/打开主表即可刷新数据。