【发布时间】:2010-10-23 00:49:39
【问题描述】:
我正在开发一个 PHP 应用程序,该应用程序具有多个可以评论的对象。每个评论都可以投票,用户可以给它 +1 或 -1(如 Digg 或 Reddit)。现在我正计划有一个带有 user_id 和他们的投票信息的“投票”表,这似乎工作正常。
问题是,每个对象都有数百个 cmets,这些 cmets 存储在一个单独的 cmets 表中。加载 cmets 后,我必须对选票进行统计,然后单独检查对用户的每张选票,以确保他们只能投票一次。这行得通,但似乎真的是数据库密集型的——很多查询只针对 cmets。
有没有更简单的方法来减少数据库密集度?我目前的数据库结构是最好的方法吗?
为了更清楚地了解当前的数据库结构:
评论表:
- user_id
- object_id
- total_votes
投票表:
- comment_id
- user_id
- 投票
最终目标:
- 允许用户对每条评论至少投票一次,且 MySQL 查询次数最少(每个对象有多个 cmets)
【问题讨论】: