数据库设计:复杂的投票系统

时间:2010-12-14 16:10:45

标签: database database-design mysql

我有三个表FeedVoteEvent

Feed
+id
+content
+voteCount  --> hold the number of votes on this feed

Vote
+id
+feedId --> FK to id in Feed
+eventId --> FK to id in Event

Event
+id
+name
+voteCount --> hold the number of votes on this event

eventfeed都可以由用户进行投票。 Vote表格会跟踪哪些人一直在投票,因为每个人只允许在eventfeed投票一次。所以这是我的问题:当我创建event Y时,我还会创建一个feedX created event Y,它将出现在用户X个人资料中。如果有人投票 投标事件Y,则投票两者 event Y以及投票{{1如果feed应该两者为1。

一个。实现上述目标的最佳方式是什么?

湾如果X created event Y已经对X feed投了票,那么他就不能再对X created event Y投票,反之亦然(因为每个用户只能对一个事件投票一次,在这种情况下,event Yfeed实际上是相同的事情)

1 个答案:

答案 0 :(得分:1)

此数据模型分别处理事件和Feed,但可以记录父Candidate。组合投票的特殊(?)情况可以在申请层中处理,只允许对候选人WHERE ParentId is NULL进行投票。

alt text