問題描述

在開發需要數據存儲的插件時,使用一種或多種方法有哪些優點和缺點?

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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。