问题描述

在开发需要数据存储的插件时,使用一种或多种方法有哪些优点和缺点?

explanation given in the codex 没有详细说明:

Before jumping in with a whole new table, however, consider if storing your plugin’s data in WordPress’ Post Meta (a.k.a. Custom Fields) would work. Post Meta is the preferred method; use it when possible/practical.

最佳解决方案

那么,如果我拿起一个 WP 脚本小子的帽子,我的答案是:使用 post_meta,永远。

但是,我碰巧知道有关数据库的一两件事情,所以我的答案是:永远不要使用 EAV(也称为 post_meta 表) 存储可能需要查询的数据。

在索引方面,元表中基本上没有值得使用。所以,如果您正在存储数据类型 XYZ,并希望您查询所有具有 XYZ 值的值为'abc'的帖子,那么… 祝你好运。 (请参阅 WP trac 中的所有用户/角色/帽子相关票据,以便您了解如何获取血液。)

在连接方面,您很快就会崩溃到优化程序决定使用通用算法的限制,而不是在有多个连接条件时分析查询。

因此,不,不,不,不。永远不要永远使用元。除非’s you’re 存储是化妆品,而且不会成为查询条件的一部分。

它分解到你的应用程序如果你正在存储一个电影导演的诞生日子,那就是大事。使用你想要的所有元素。但是,如果您正在存储电影的发布日期,那么您不要使用单独的表格 (或在帖子表中添加列),并在该列中添加索引。

参考文献

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