提问人:root66 提问时间:11/5/2023 最后编辑:root66 更新时间:11/6/2023 访问量:44
价格变动的校验和
Checksum for price changes
问:
我将每周更新的产品价格与外部数据源同步,然后仅将价格更改与有效开始日期保存在 SQL 数据库中。这样,我以后就可以确定给定日期的有效价格并节省数据库内存。
现在我想集成一个校验和,以便我可以确定过去每周价格同步是否失败。有没有一种校验和算法,我可以用它来专门检查价格是否在 X 周更新,而不会生成太多数据,以至于我最终可以更好地保存每周价格,即使它没有改变?
背景: 我从其他外部来源收到延迟预订数据(发票日期、发票日期的产品价格、数量),并希望使用我自己的价目表验证外部来源是否正确选择了价格。但事实往往并非如此。 为了使我的系统更耐错,我需要确保识别失败的价格同步。
当然,最安全的方法是每周再次节省价格,但我想节省存储空间,因为涉及的产品很多。
一个简单的想法是,自上一个价格更新周以来,每周都使用检查位。每年 52 位 = 7 字节,而不是完整价格表行大小 + 索引的 52 倍。
答:
您可以使用校验和来检查价格变化,而无需保存整个价格历史记录。方法如下:
计算每周价格数据的哈希值。 将哈希值与周数一起存储。 在随后的价格同步期间,再次计算哈希值。 将新的哈希值与存储的哈希值进行比较。 如果哈希值匹配,则价格数据未更改。 如果哈希值不同,则价格数据已更改。 这样,您可以快速识别价格变化,而无需存储整个价格历史记录。
评论
If the hash values match, the price data hasn't changed
- 虽然情况恰恰相反,但这种说法实际上可能并不成立。
与您提出的方案类似 - 为什么不在该表上包含一列。我假设您的表格已经有一列,以及实际价格和数量数据。这将使你能够更轻松地对历史数据执行查询 ()。此列的数据类型大小可以是 1 个字节或 2 个字节,具体取决于如何处理年份之间的滚动。end_week
start_week
start_week <= week AND week <= end_week
评论
上一个:为什么原位突变用“IO”表示?
下一个:计算正方形定位的公式
评论