有没有办法限制数据库中关系的基数?有些朋友和我自己都在为松弛的消息添加反应而烦恼,现在我想知道如何强制执行只有x响应可以应用于给定消息的给定uesr。
我只是想知道如何实现这一点,因为我唯一能看到的就是存储过程以防止往返数据库。是否有一般的使用方式?
答案 0 :(得分:0)
听起来你有一个外键关系,可能会有很多行指向给定的键。
确保每行都有一个判别列,例如置信度分数,随机数或时间戳。然后,只需运行DELETE行的报告,以删除较旧的不太有趣的行,并将您带入指定的x
预算范围内。实现这一目标的更昂贵的方法是在INSERT触发期间修剪单个古代行。
假设您不太关心驱逐政策,x == 2
。然后在(reaction_id, parity)
上创建一个唯一索引,计算反应的奇偶校验位(可能是sha1()摘要的低位),并将其用于每个INSERT。在表格中出现两个这样的反应之后,所有未来的INSERT都会发生冲突,所以你的UPSERT(更新/插入)会根据需要自动驱逐旧的反应。