对于笨拙的标题道歉,可以随意提出改进。
我有一个表记录,并且有一个 UserId 列,指的是谁进行了沉积。还有计数器列,它是标识(1,1)(请记住,它与 Id 列不同,这一点很重要是主键。)
当我们开始从不同的账户存款时问题变得明显,因为在此之前,用户可以要求记录号码123到127,获得5个金额,但现在,他们的选择可能是123,125,126甚至更糟 - 没有所有
处理它的唯一选择,我可以想象创建一个业务逻辑层,检查用户的最高沉积计数器,并将新记录添加一个增加。
但是让它自动运行肯定会很好。像身份(1,1,guid)之类的东西。有可能吗?
答案 0 :(得分:1)
要维护这样一个列,您需要一个触发器。
您可以考虑在查询表时计算值:
select r.*, row_number() over (partition by guid order by id) as seqnum
from records r;
答案 1 :(得分:1)
我能想象创建业务的唯一选择 逻辑层,为用户检查最高沉积计数器 并将新记录添加一个。
学习的时间。
成品。这显然假设您的关系数据库以关系方式使用,因此记录与用户表相关,而不仅仅是持有用户ID(这将是一个糟糕的设计)。
如果没有,您还可以通过所述触发器维护所有已见GUID的表格。