代码之家  ›  专栏  ›  技术社区  ›  Alix Axel

博彩社区数据库设计

  •  4
  • Alix Axel  · 技术社区  · 15 年前

    我正在创建一个在线社区,为我的国家提供足球博彩游戏。我很清楚整个系统应该如何工作,但我在确定理想的数据库设计时遇到了一些困难,我需要一些帮助。

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

    1. 欢迎每个人注册成为会员;每个会员都应该有一个名字、电子邮件地址和密码。
    2. 每周都有一个新的投注比赛开始,每个比赛都有一组固定的“问题” (在这种情况下,每个“问题”基本上都是以“主队-客队”的形式出现的)。
    3. 每个成员都可以自由地 以“1 x 2”的形式进行预测 (1:主场赢,X:平局,2:客场赢; 对于每个“问题” 所有的 打开 可提供的竞赛和一笔钱(见第5点)。 每次比赛只允许一个预测 .
    4. 在每个周末,所有的比赛都结束了, 真正的赌注是基于所有的个人赌注和每个成员的表现 ( see also this related question )。下的赌注应该是公开的,每个人都可以看到。
    5. 当知道所有比赛的结果时,应该可以“附加”(对不起,我漏掉了这个词)奖品的金额(当然,如果社区幸运的话)。 然后,奖品应按比例除以每个团队成员下注的金额。 .
    6. 每个成员可以在任何给定的时间存款或从其账户中提取可变金额的资金,还应 显示所有存款、奖金和提款的交易页面 .

    额外的问题:因为我在“seo友好”的网址上仍然很环保,所以我也会对学习感兴趣。 您如何命名这个系统中涉及的所有段? .

    我非常感谢在设计能适应整个场景的DB模式方面有任何帮助。

    附言:我会为这个问题开一个赏金,我目前的互联网连接有一些问题,所以我可能需要一些时间来阅读/评论你的答案。

    事先谢谢!

    1 回复  |  直到 8 年前
        1
  •  17
  •   Damir Sudarevic    8 年前

    这是一项艰巨的任务,但我的尝试是:

    • Members 表存储成员数据;包括 PerformanceFactor 它是根据一个人回答的正确性定期重新计算的。
    • Transactions 表跟踪每个成员的存款和取款。这个 Type 字段可以是1=存款,2=取款,3=从赢款中转移。
    • 一个比赛可以有许多问题,一个问题只属于一个比赛。
    • 一个成员可以下多个成员赌注,一个成员赌注只属于一个成员。对 MemberID, ContestID 防止会员为特定比赛下注
    • 一个会员赌注有几个答案,每个答案只属于一个会员赌注;每个答案与一个问题有关。在上放置唯一约束 MemberBetID, QuestionID 防止会员对某一特定问题给出多个答案。
    • DerivedAnswers 表中包含通过“统计分析”会员对特定比赛的答案获得的答案。在上放置唯一约束 ContestID, QuestionID 防止对特定问题重复回答。

    community_bets_01