我正在使用 postmeta 表为 wordpress 编写一些自定义代码。项目存放在这里,常见的pk1是post_id。
但是,我正在做的将有一堆 postmeta 的可点击部分,例如
- source_site
- 来源作者
- source_rating
或类似的东西。现在,该表将保存具有相同 source_site 或 source_author 的不同帖子的多个帖子数据。
然后,用户可以单击 source_author,他们将被带到一个新表,其中包含链接回此 source_author 的所有帖子或文章。
问题是我链接到一个 postmeta 值,而不是通过 post-id 的 pk1。
这意味着要获取其余数据,我要么必须进行额外的查询,要么必须加入同一个表。
这让我想到了我的问题。做连接或子查询会更好吗?
进一步的问题是 postmeta 表存储了所有各种数据以及键和值,因此很难查询我想要的其他部分。
所以桌子看起来像
|meta_id|post_id|meta_key|meta_value|
|1 | 2 |source_author | Dan Holmes |
|2 | 2 |source_site |http://somesite.com|
只是寻找最干净的方法来获取这些数据,否则我能想到的就是首先为作者获取数据:
$the_post_ids = select post_id from postmeta where meta_key='source_author' and meta_value='Dan Holmes'
foreach($the_post_ids as $post_id) {
select * from postmeta where post_id=$post_id;
}
现在这都是非常伪代码,我想问题是一旦数据开始变得相当大,我担心这最终会导致每个可以点击的部分产生很多开销,而我有对单个数组进行多项选择。
有没有更好的方法来处理这个?