产品(productId INT PK,bidCount INT)
出价(bidID INT PK,productId INT,userId INT,isCounted BIT,DATETIME创建)
产品与出价之间存在1:多关系。
每个投标周期持续1天,因此我需要每天跟踪唯一出价并更新bidCount列。我为批处理过程中处理的每一行设置了isCounted = 1。
因此,这是一整天产品的独特出价总计。
我有一个每5分钟运行一次的sql作业来更新bidCount。
我认为此查询需要的步骤:
这是正确的做法吗?这是一个复杂的方法还是可以简化?
更新的 我添加了创建的DATETIMe字段,因此我必须对当天进行过滤,并删除每天(或在同一过程中)运行的另一个批处理作业中的任何旧出价
答案 0 :(得分:0)
为什么不使用触发器?如果我理解你的问题,你可以将触发器插入Bids表。在此触发器中,您将在相应的products行表中增加bidCount。而且您还可以制定一个将在午夜运行的计划,并将bidCount设置为0。
答案 1 :(得分:0)
我认为isCounted对你来说是错误的方向。您必须查询当天的所有出价并按userId进行分组,并对行进行计数并将该数字插入到bidCount中。
所以这是一个独特的运行总计 全天投标产品。
你不可能真正拥有独特的唯一身份,因为每次跑步都必须重新独特。因此,无论它是否已被计算都是无关紧要的。