我一直在寻找这里和谷歌的答案,虽然我已经找到一些指示我还没有找到解决方案.
如果你有一个带有数据库的简单RSS阅读器,你可能有几个用于存储提要的表(忽略在这里处理订阅者):
这适用于大多数情况,但对于许多基于网站/网络的应用程序,您可能从首页获得主要供稿,然后是类别供稿,如果您同时使用上述类型的系统,那么由于相同的原因,将会有大量的复制数据帖子出现在几个RSS源中.
我提出的两个选择是忽略它并接受重复项或使用源和项之间的链接表.但是,这似乎也是一种浪费,因为我想要提取的那种饲料中有80%可能没有多个可以创建此复制的源.
有没有更好的方法这样做/我是以完全错误的方式看待这个?
更新
感谢两者的答案,所以共识似乎是空间的节约可能不足以担心并且可能被未知问题的可能性所抵消(例如dbr提到的).
添加链接表或类似链接可能会增加处理时间,因此总体上不值得担心太多.我只是在阅读链接内容和删除重复内容的回复之后才有了想法,只有当帖子不再用于任何RSS提要以节省空间时,但是再次像Assaf所说的那样,空间节省可能会浪费时间.
我可能误解了如何使用ON DUPLICATE KEY语法,或者我的数据库结构需要一些工作但是这里有.
我有一个表(bookings-meta)表示与另一个表(预订)相关联的元数据,预订表中的不同行可能有也可能没有在另一个表中与它们相关联的特定元数据.
bookings-meta表包含以下列:meta_id(主键),booking_id,键和值.
根据我的理解,使用ON DUPLICATE KEY我需要知道在这种情况下meta_id是什么,通常情况并非如此,我试图使用booking_id简单地将一个键,值对推送到表中,所以如果特定密钥存在然后替换否则插入.
目前我有一个单独的查询尝试选择行,如果找到它然后我更新,如果不是那么它的INSERT.
有没有办法在一个查询中进行插入/更新而不使用ON DUPLICATE KEY或者我错过了一个这个技巧?