2010-12-14 36 views
0

我有三张表Feed,VoteEvent数据库设计:复杂投票系统

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时,我将创建一个feed,比如X created event Y,它将出现在用户X配置文件中。如果有人对要么饲料事件Y,的event Y表决。feed的所述X created event Y应该投票表决1.

一个。达到上述的最佳方法是什么?

b。此外,如果Xfeed提到X created event Y已经投票,那么他不能在event Y了,反之亦然投票(因为每个用户只能对事件进行投票一次,在这种情况下,feedevent真的是一回事)

+1

根据你的问题,我认为你需要饲料和事件之间的外键关系。 – orangepips 2010-12-14 16:32:12

回答

1

此数据模型分别处理事件和馈送,但可以记录父母Candidate。组合选票的特殊(?)情况可以在应用程序层中处理,只允许投票根据候选人WHERE ParentId is NULL

alt text