我将实现一个收藏夹帖子系统,这样用户可以保存他们最喜欢的帖子供以后阅读。
考虑到成千上万的用户可能会使用此功能,我想知道什么是最好的方法。用户将能够在自定义页面中看到他们最喜欢的帖子,该页面将显示他们。
我已经想到了3种不同的可行方法,我想知道哪一种是性能最好的。
1.-将所有用户ID保存为Posteta中名为favorites的数组。
2.-制作一个名为收藏夹的自定义帖子类型。
3.-创建一个新的数据库表“wp\\u收藏夹”,其中存储帖子id、用户id和创建关系的日期。
那么,这三个选项中,哪一个是最好的(正如我所说的,性能方面)?如果有的话,每种方法的利弊是什么?如果有更好的方法,请告诉我。
SO网友:Andy
UPDATE: 我没有看到你的问题中关于用户能够看到收藏夹页面的部分。基于这一点和Stephens的评论,我认为使用update_user_meta() 和get_user_meta() 存储post ID将是一个更好的选择。这样,使用WP_User_Query
ORIGINAL ANSWER:将用户ID另存为Posteta表中的数组。update_post_meta()
和get_post_meta()
甚至可以为您处理序列化/取消序列化数组。
在提出编程问题的解决方案时,性能不应该总是决定因素。性能很重要,但可维护、可读和可伸缩的代码也很重要。如果你沿着db table专用道路slight 性能提高然后您必须管理表的创建以及所有自定义数据插入和检索查询
创建一个新的自定义post类型来存储来自不同post类型的post元数据是没有意义的,它会为另一个post对象上的一段数据带来额外的开销。
在考虑这里涉及的数字时,你应该现实一点,如果你确信成千上万的用户将使用此功能,所有人都喜欢相同的帖子,那么也许一个专用的数据库表是你最好的选择,但我发现这不太可能,这就是为什么我建议使用Posteta