问题描述

我明白 post ID’s are unique,但它们是否可靠作为持久性数据 ID?

更具体地说,是否保证通过迁移或其他数据交换,帖子 ID 不会改变?

我理解 wordpress 主要是使用 MySQL 实现的,所以 ID 由 AUTO_INCREMENT 机制管理; 然而,Wordpress 的结束之前是否有任何警告会在将来改变这种行为,或者有可能通过另一个持久性实现 (如 MongoDB)?

最佳解决方案

I understand that post ID’s are unique, but are they reliable as persistent data ID’s?

是。

次佳解决方案

迂回答案是否定的。

虽然 ID 是唯一的,但只要更改保留数据库的一致性,它们就可以在 UX 中进行任何更改。而创建一个新的帖子时,会生成一个新的唯一 ID,也可以通过代码创建一个帖子来重用一些”old” ID 。

实际上,它们是可靠的,但如果可靠性对您来说非常重要,那么您需要附加一些数据作为您自己需要的可靠标识符。

更新:完全忘记了它,因为它很少使用,大多数时候我看到它使用不正确,但 wordpress 有一个可靠的唯一标​​识符定义,它是 GUID

第三种解决方案

回顾一下已经说过的一切,答案是:

是的,ID 是可靠的,只要你不使用 WordPress XML 导出器/导入器将有问题的帖子导入到另一个安装中。只要您迁移现有数据库,并且不从头开始安装 WordPress,ID 将保持不变。

PS1:是的,正如 Mark Kaplun 所说,如果您自己手动更改或重新使用 ID,则 ID 可以更改或重复使用,但您已经知道,任何数据库上的任何字段都是正确的。

PS2:wp_posts GUID 字段不应该被信任为常量,因为它们依赖于原始帖子的 URL,并且可能会在网站被迁移时无意中被新的 URL 替换,并且显然,在使用导出器/导入器时 GUID 也会改变。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。