我需要将来自多个 RSS 源的新项目存储在数据库中。我想使用每个项目的 GUID 标签来确定它是否已存在于数据库中。
参见 W3C 规范:
guid 代表全局唯一标识符。它是唯一标识该项目的字符串。如果存在,聚合器可以选择使用此字符串来确定项目是否是新的。
...
guid 的语法没有规则。聚合器必须将它们视为字符串。由提要的来源来确定字符串的唯一性。
所以我的问题是,认为不同 Feed 中的 GUID 是唯一的是否安全?或者我是否需要将 GUID 与其来源的源结合起来,以确保没有重复的 GUID?
GUID 甚至不是强制性的,因此在我看来,认为它是唯一的并不安全。我建议您阅读这篇关于 rss feed 重复检测的博客文章。 (存档副本)
不幸的是,它们不应该被认为是唯一的,但是,如果 RSS 2.0 规范确实说它们是可选的,那么应该强烈推荐它们作为从旧条目中识别新条目的最有效机制。