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