誰もが知っているように、WordpressのDBコードで頻繁に使用されるデザインパターンは、特定の名前またはキーでインデックス付けされた特定のオブジェクト(ブログ/投稿/コメント)のデータを永続化するという考えです。
次の標準表でこのパターンが使用されています。
私が言える限りでは、この設計決定の動機は、データベーススキーマを修正する必要なしにプラグイン/テーマの作者がデータを簡単に(例えばカスタムフィールドを使用することによって)永続化できるようにすることでした。この方法には他にもいくつかの利点があると思われます。これは、速度が著しく遅く、複雑なクエリを実装するのが難しくなるためです。
もしあれば、このアプローチの他の利点は何ですか?
更新:このアプローチの欠点に関する情報を読む:
データベース構造を変更せずに抽象キーと値のペアを格納できるのは、の理由です。それがなければ、WordPressはその柔軟性から多くのを失います。私は他の人のために話すことはできませんが、私がWordPressの上で開発する最大の理由はその柔軟性です。
上記のリンクの1つを引用するには、
通常あなたがしていることをすることの背後にある推論は、ドメインが「ユーザー定義可能」である必要があるからです。それが事実であるならば、私さえその場でテーブルを作ることに向かってあなたをプッシュするつもりではありません...
クエリーがより複雑で、少し遅くなることを強制するのは事実ですが、その利点はコストをはるかに上回ります。しかし、ねえ、それはあなたがしていることについてのすべてです。ネジで叩くのにハンマーを使用しないでください。それでもWordPressを使用したいが、安定した構造化されたデータセットに対して複雑なクエリを実行する必要がある場合は、 Pod をご覧ください。
これがお役に立てば幸いです。
WordPressの最も重要な失敗はそれらのデータベース設計です。ホースホールドWebサイトでのみ使用可能です。高性能サイトでは、BASICインデックス作成などのパフォーマンス上の問題により、アンチパターンをデータベース設計として使用することは決してありません。