如何同时存储新旧更新值?

时间:2015-04-01 04:46:20

标签: mysql database-design

我已经建立了一个数据库:

slots(user_id,current_slots,old_slots,current_expiry,old_expiry);   
credit_transfer(transfer_id, sender_id, receiver_id,date,num_slots);  
history(history_id, reseller_id,transfer_id)

user_id来自用户表 sender_id和receiver_id是user_id的外键 reseller_id是用户表的外键

当用户购买新的时段时,其条目将记录在历史表中,并带有新的历史ID,即来自时隙表。

我面临的问题是当添加新的history_id时,即添加新的插槽时,具有先前历史ID的插槽也会更新。

如何更改设计,以便旧的历史ID行不会发生变化。

1 个答案:

答案 0 :(得分:0)

最简单的方法是在userId上放置一个唯一的约束。这将确保您没有相同用户条目的重复项。

我不确定您目前使用的语言是什么,或者您是否正在使用存储过程。但无论如何,请检测重复/唯一约束异常并更新插槽计数或到期信息。