是的,您可以使用内置函数来执行此操作。你有一个非常广泛的问题,一个可行的解决方案需要相当多的工作,但有几种方法可以用我认为可行的核心功能来处理这个问题。
将所有内容存储在post meta中
您可以仅使用您已经考虑的两个字段来完成此操作。保存一个用户数组,而不是保存计数器
ID
s、 要获得计数,只需对用户进行计数
ID
s、 带一个“;“向上投票”;数组和一个“;“被否决”;阵列,你有你需要的。
要告诉用户是否投票,只需检查用户的数组ID
.
如果您需要查询投票,这将不是一个好的解决方案。也就是说,如果您需要查找特定用户投票的所有帖子,那么它将无法正常工作。如果你需要为所有的帖子或一些大的帖子找到所有的投票,那么它不会很好地工作。
使用post meta和user meta的组合,类似于上述内容,但您将使用*_user_meta
用于保存post的数组的函数ID
s到usermeta
表中的计数器之外$wpdb->postmeta
.
这意味着数据库写入量加倍,读取量加倍,但这会让您得到;由用户投票的所有帖子;相对容易。但是,与其他解决方案一样,如果您需要搜索该用户的元数据,这将无法正常工作。
如果阵列太大,这两个选项都可能存在性能问题。数据库列类型为longtext
, 这将保存大量数据,但传输处理时间可能会成为一个问题。
我认为你应该能够使用评论元而不是帖子元,但我认为帖子元更合适。
如果我要对核心表和函数执行此操作,我会倾向于第二个选项,但如果我认真考虑这样的事情,我会非常认真地考虑一个专用表,我可以专门为此任务构建和索引。就您可以运行的查询类型而言,这将是最灵活、最有效的方法。如果你想得到最好的答案,在我看来,这需要学习SQL
.