投注社区的数据库设计

时间:2009-11-06 19:59:17

标签: php database database-design sqlite schema

我正在为我国的足球博彩游戏创建一个在线社区。我非常清楚整个系统应该如何工作,但是我在找出理想的数据库设计时遇到了一些麻烦,我需要一些帮助。

通常的工作流程应该是这样的:

  1. 欢迎大家注册成为会员;每个成员都应该有一个姓名,电子邮件地址和密码。
  2. 每周都会开设一个新的投注比赛,每个比赛都有一套固定的“问题”(在这种情况下,每个“问题”基本上都是“主队 - 访问团队”的形式)。
  3. 每个成员都可以以“1 X 2”的形式自由地投射他的预测(1:Home Wins,X:Draw,2:Vising Wins; for each“question” )所有开放竞赛以及一笔金额(见第5点)。 每次比赛只允许一个预测
  4. 在每周结束时,所有比赛都将结束,并根据所有个人投注和每位成员的表现进行真实投注see also this related question)。已下注的赌注应公开供所有人查看。
  5. 当所有比赛的结果都已知时,应该可以“附加”(抱歉,我错过了这个词)奖金的金额(当然,如果社区运气好的话)。 奖金应按比例除以每个团队成员投注的金额
  6. 每位会员可以在任何时间向其帐户存入或提取可变金额,还应该有一个交易页面,其中显示所有存款,奖品和提款。 / LI>

    奖金问题:由于我在“SEO友好”网址上仍然非常环保,我也有兴趣学习如何命名此系统中涉及的所有细分

    我非常感谢设计可以适应整个场景的数据库架构的任何帮助。

    PS:我会为这个问题打开奖金,我目前在互联网上遇到一些问题,所以我可能需要一些时间来阅读/评论你的答案。

    提前致谢!

1 个答案:

答案 0 :(得分:17)

完成一项任务,但这是我的尝试:

  • Members表存储成员数据;包括PerformanceFactor,根据一个人的答案的正确性定期重新计算。
  • Transactions表跟踪每个成员的存款和取款。 Type字段可以是1 =存款,2 =取款,3 =从奖金转帐。
  • 一场比赛可以有很多问题,一个问题只属于一场比赛。
  • 一个会员可以进行多次会员投注,会员投注仅属于一个会员。在MemberID, ContestID上设置UNIQUE约束以防止会员为特定比赛下多次投注
  • 一个会员赌注有几个答案,每个答案仅属于一个会员赌注;每个答案都与一个问题有关。在MemberBetID, QuestionID上放置UNIQUE约束,以防止成员为特定问题放置多个答案。
  • DerivedAnswers表包含通过特定比赛的成员答案的“统计分析”获得的答案。在ContestID, QuestionID上放置UNIQUE约束,以防止重复特定问题的答案。

community_bets_01