我正在开发一个PHP应用程序,其中有几个对象可以被评论。每个评论都可以被投票,用户可以给它+1或-1(类似于Digg或Reddit)。现在我计划有一个“投票”表,其中包含user_id和他们的投票信息,这似乎很好地工作。
问题是,每个对象都有数百条存储在单独的评论表中的评论。加载评论后,我必须计算投票并逐个检查每个投票以确保他们只能投一次票。这样做虽然有效,但却需要大量数据库查询 - 只是为了获取评论。
有没有更简单的方法来做到这一点,而且不会对数据库造成太大的压力?我的当前数据库结构是最佳方式吗?
为了更清楚地说明当前的数据库结构:
评论表:
- user_id - object_id - total_votes
投票表:
- comment_id - user_id - vote 最终目标:
- 允许用户对每个评论只投一次票,并尽可能少地使用MySQL查询(每个对象都有多个评论)
问题是,每个对象都有数百条存储在单独的评论表中的评论。加载评论后,我必须计算投票并逐个检查每个投票以确保他们只能投一次票。这样做虽然有效,但却需要大量数据库查询 - 只是为了获取评论。
有没有更简单的方法来做到这一点,而且不会对数据库造成太大的压力?我的当前数据库结构是最佳方式吗?
为了更清楚地说明当前的数据库结构:
评论表:
- user_id - object_id - total_votes
投票表:
- comment_id - user_id - vote 最终目标:
- 允许用户对每个评论只投一次票,并尽可能少地使用MySQL查询(每个对象都有多个评论)