日期:2014-05-18  浏览次数:20528 次

数据库设计,逻辑处理指点
现有
用户表 tab_user (uId,uName,uAddress ..)
活动奖项表 Tab_Campaingn (campId,CampName ..)
参与活动表 Tab_CampaignJoin (campId,uId,中奖状态,参与时间)


现在业务需求 

获奖规则:
每天出24个奖,平均每小时出2个奖,也就是说每小时随机发放两个中奖名额给在这两个小时内参与抽奖的用户;

请问数据库怎么设计比较好?

现在刚开始开发,数据库设计还可以改动。 
想征求一下高手的建议和想法。谢谢



------解决方案--------------------
SQL code
就你这个其实就可以查询了

select 
  distinct b.*
from
  tb a
cross apply
  (select top 2 * from tb where uid=a.uid order by newid())b