sql - 保持 RSS 提要在 sql 数据库中唯一的最佳实践

标签 sql rss unique feed

我正在从事一个显示来自不同站点的 RSS 提要的项目。 我将它们保存在数据库中,我的程序每 3 小时获取一次并将它们插入到 sql 数据库中。 我希望提供商的唯一记录不会显示重复的内容。

但问题是有些提供者不提供 GUID 字段,有些提供者提供 GUID 字段但不提供 pubdate.. 还有一些提供者甚至不提供 GUID 或 PubDate 只是标题和链接。

那么要在 sql server 中保持 rss feeds uniqe 最好的方法是什么?

我应该首先检查 guid,然后是 pubbdate,然后是链接,然后是标题?比较 SQL 中的链接字段以检查唯一性是否是一种好的做法?

谢谢。

最佳答案

我会开发一个例程,它采用某些关键参数,如标题、来源和正文,然后将它们组合起来创建一个 CRC 散列。然后将散列作为一个属性与提要一起存储,并在添加新提要之前检查匹配的散列。

我不确定您的环境限制是什么,但这里有一个在 C# 中计算 CRC-32 的示例:http://damieng.com/blog/2006/08/08/calculating_crc32_in_c_and_net

关于sql - 保持 RSS 提要在 sql 数据库中唯一的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11953807/

相关文章:

java - 为什么 Feedly API 没有返回类别流中的所有 id 条目?

ios - 将 RSS 提要中的缩略图图像显示到 tableView 单元格中

mysql不唯一自增,主键两个字段

sql - 在 Laravel 中访问数据透视表数据

mysql - 我如何在 SQL 中合并多个 WHERE (STUCK)

mysql - INSERT ... ON DUPLICATE KEY(什么都不做)

mysql - 根据日期查询mysql

rss - 监控特定的 RSS

laravel - 如何根据表单请求创建唯一验证(更新/补丁)的条件

pandas - 通过比较两个数据帧 pandas 中的列来获取唯一值的有效方法