我正在研究一个PHP应用程序,它有几个可以评论的对象。每个评论都可以投票,用户可以给它+1或-1(如Digg或Reddit)。现在我正计划拥有一张载有user_id及其投票信息的“投票”表,这似乎工作正常。评论投票数据库结构的最佳做法
问题是,每个对象都有数百个注释存储在单独的注释表中。在我加载评论之后,我必须对票进行总结,然后逐个检查每位投票者,以确保他们只能投票一次。这工作,但似乎真的是数据库密集型 - 很多只是评论的查询。
是否有一个更简单的方法来减少数据库密集度?我目前的数据库结构是最好的方法吗?
更清晰了解当前的数据库结构:
评论表:
- USER_ID
- OBJECT_ID
- total_votes
投票表:
- COMMENT_ID
- USER_ID
- 投票
最终目标:
- 允许用户在每个评论有至少#MySQL的查询只有一次投票(每个对象有多条评论)
实际上帮助很大,谢谢!有关两个主键的想法甚至没有跨过我的想法。 – mdolon 2009-05-01 02:26:00