我们必须建立一个投票系统,让用户投票给不同职位的不同候选人。选民可以登录。如何存储一名选民的投票,然后将该投票添加到之前的投票中?唯一可能的方法是将每张投票存储在数据库中,对吧?但数据库的结构会是什么样子呢?那么如何计算呢?
编辑:
投票系统不仅仅只有一组候选人可以投票。有市长、副市长、参议员等等,太多了。这就是为什么我很困惑。如果只是总统的投票制度,那就容易多了。因此,如果我有一个选民表,其中有一列他/她投票的候选人,这是不可能的,因为选民投票给许多候选人。
最佳答案
更好的方法是使用不同的表来存储投票。该表将有两个属性(VoterId、CandidateId) 如果您允许从此表中进行多次投票,您可以获取投票计数。
但最好将 VoterId 设置为该表中的主键。以避免多次投票
CandidateType: - (TypeId(PK), typeName, maxVotePerVoterForThisType)
Voter Table: - (voterId(PK), voterName, otherInfo)
Candidate Table: - (candidateId(PK), candidateName, constituency, otherInfo, TypeId(FK))
Votes:- (voterId(PK, FK), TypeId(PK, FK), candidateId(FK))
*编辑:- 根据原始帖子中更改的要求编辑了架构
*编辑:- 在 CandidateType 表中添加了一个字段以允许 multiple votes
(例如:现在投票者可以投票给 10 Senators
,如果此类型的 maxVotePerVoter
设置为 10..)
关于php - 使用PHP+MySql的投票系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12550995/