Wordpressのデータモデルは、その「メタ」テーブル(別名、wp_postmeta、wp_commentmeta、wp_usermeta)を通じて拡張性を提供します。この名前/値ペアのリンクは非常に柔軟で、WordpressのAPIによってサポートされています。それを祝うすべての正当な理由ですが、トランザクションにぶら下がっている拡張属性がたくさんある場合は、パフォーマンスが大幅に低下する可能性もあります。たとえば、「血液検査」と呼ばれるカスタム投稿タイプがあり、血液分析から得られる30〜40の異なる測定値をキャプチャできるようにしたいとします。このwp_postmeta結合を各テストに使用することは実用的ですか?おそらくそうではありません。
完全にオーダーメイドでテーブルを左右に作成することもできますが、私が疑問に思っているのは、少なくとも「80/20ルール」を作成し、静的な数の追加列を提供する汎用拡張テーブルを作成する方法がないことです。 SQLで検索可能な属性を配置し、SQL以外の検索可能な属性をほぼ無制限に拡張できるJSONオブジェクトの列で終了しますか?以下の図のようなもの:
これを行うことで、Wordpress APIを拡張して、ほとんどの開発でこの構造の違いをほとんど無視できるようになると考えていました。このようなもの:
登録APIの例:
$my_meta_ext = new WP_Meta_Extension( 'post' );
$my_meta_ext->add_tran_type( 'blood-measurement' , ( 'col1' => 'total-cholesterol' , 'col2' =>
'triglycerides', 'col3' => 'etc');
使用法APIの例:
add_ext_meta ( $term_id, 'blood-measurement.total-cholesterol', $meta_value );
さて、これがグループに対する私の明確な質問です:
- これは意味がありますか?これに価値がありますか?このようなものはすでに「プラグイン」形式(またはその他)で存在しますか?
- すべてのタイプ(別名、投稿、コメント、ユーザーなど)で1つの拡張テーブルを使用する場合、効率的なmySQLでインデックスを作成できますか?タイプごとにテーブルを作成する方がよいでしょうか。
- デフォルトのワードプレス拡張モデルのパフォーマンスが低下し始めたときに、誰かが(完全に証明されていなくても)何らかの指標を持っていますか?
- このようなことをすでに行っている場合...モデルを拡張するときに学んだ重要な教訓はありますか?これはどれほど複雑な作業ですか?