是否存在通用Wordpress扩展表的位置?

时间:2012-05-23 11:08:22

标签: wordpress database-design database-performance

Wordpress的datamodel通过它的“meta”表(aka,wp_postmeta,wp_commentmeta,wp_usermeta)提供可扩展性。这个名称/值对链接非常灵活,并受Wordpress API的支持。庆祝它的所有充分理由,但如果您的交易中有许多扩展属性,它也会变得非常不具备性能。例如,假设我有一个名为“血液测试”的自定义帖子类型,我希望它能够捕获血液分析中出现的30-40种不同的测量结果。使用这个wp_postmeta加入每个测试是否实用?可能不是。

我可以完全定制并左右构建表格,但我想知道的是,至少没有办法构建“80/20规则”并且有一个通用的扩展表,提供静态数量用于放置SQL可搜索属性的附加列,然后以JSON对象的列结束,这将允许非SQL可搜索属性扩展到几乎无限量的数量?类似于下图所示的内容:

comparing the two models

我在想通过这样做可以扩展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. 这有意义吗?你觉得这有价值吗?这样的事情是否已经以'插件'形式(或其他方式)存在?
  2. 如果您要在所有类型(也就是帖子,评论,用户等)中使用一个扩展表,您是否能够在mySQL中构建一个高效的索引?每种类型的表格更好吗?
  3. 当默认的wordpress扩展模型的性能开始下降时,是否有人有任何指标 - 即使它们没有完全证明 -
  4. 如果您已经完成了这样的事情......在扩展模型时学到了什么重要的经验教训?这个任务有多复杂?

1 个答案:

答案 0 :(得分:0)

我把这个话题带到了伦敦的一个专业的WordPress工作组,虽然我们没有得到答案但是很清楚地认为这个类型的解决方案非常有价值。此外,我已经决定创建一个GIT存储库,目的是开发一个插件来解决这个问题(希望得到伦敦团队的慷慨支持或任何正在阅读此内容并感觉你可以提供帮助的人)。

可在此处找到存储库:

https://bitbucket.org/ksnyder/wp-database-extension/

请理解,目前只有一个想法,一个高级设计,一个接口规范,但没有真正的代码。这当然会改变,如果你愿意帮助我们这项工作,它会更快地改变(请注意,我没有运行分布式开发的个人经验,但你必须在某处学习)。