【问题标题】:Developing a simple voting system in php need help用php开发一个简单的投票系统需要帮助
【发布时间】:2011-07-23 11:24:10
【问题描述】:

我需要为我的应用程序设置一个简单的投票系统。我的应用程序由发布的文章和 cmets 组成。我想为文章和 cmets 添加投票功能,同时能够根据最高投票等对 cme​​ts 进行排序。

我有以下限制,即由于应用程序需要用户登录 - 只有登录用户才能投票,其次,用户只能对一个项目投票一次。用户可以投赞成票、反对票或取消他们所做的投票。

什么是合适的桌子设计,另外我需要可扩展的解决方案。感谢您的建议

【问题讨论】:

  • 您可以在本教程中获得一个想法,只需将其应用于您的应用程序'link

标签: php database-design voting-system


【解决方案1】:

我想我会使用 usersarticles 表之间的连接表:

users_articles
  - article_id
  - user_id
  - score
  - date

附注如下:

  • article_id 是上/下投票文章的外键
  • user_id 是投票用户的外键
  • score 是 +1 或 -1,具体取决于投票
  • 主键位于两个 article_id, user_id 列上。
  • 用户对文章投票意味着在此表中插入一行;取消投票意味着删除该行(如果您想跟踪用户投票的事实,则设置为 0 分)


那是对文章的投票。
我会再做一张users_comments 表来为 cmets 投票。

【讨论】:

  • 这很好——我正在考虑使用一个表来为两者使用一个额外的字段来指示元素的类型,即如果它是一篇文章或评论,以及另一个字段来保存元素的 id,但是如何我是否能够使用 SQL 检索一组让我们说文章标题与赞成票和反对票数或累积分数的对比
猜你喜欢
  • 1970-01-01
  • 2013-06-05
  • 2014-03-26
  • 2011-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多