寻找博彩 UML 图建议

Looking for a Betting UML Diagram advice

我正在尝试开发一个投注系统,这是我的数据库模型 UML 图的一部分。

MATCH(match_id, home_team, away_team, time)
FIRST_HALF(match_id, home_team_goals, away_team_goals)
SECOND_HALF(match_id, home_team_goals, away_team_goals)
BETTYPE(bet_type_id, match_id, odd, bet_name)

我对我的 MATCH -> BETTYPE 关系有些怀疑。这是一个好习惯,还是最好在 MATCH table 中包含一场比赛的所有投注类型,例如:

MATCH(match_id, home_team, away_team, winner, first_half_winner, second_half_winner, home_team_goals, away_team_goals...)

哪个是更好的解决方案?第一还是第二? 谁能为我描述这个迷你应用程序的一个好的 UML 图?我想要一个模式,它可以让我的工作更轻松地进行数据库查询。

提前谢谢你。

首先,不要把赔率放在投注类型中table。每个投注都有不同的赔率,即使它们属于相同的投注类型。
关于将乐谱放在哪里,您有 2 个有效选项:

  1. 直接在比赛中保留半场、全场、加时赛和点球得分table。

优点:

  • 一个简单的平面table阅读起来又快又简单

缺点:

  • 在容易避免的情况下保留多个可为空的列

样本table:

TblMatch
--------
Match_Id (pk)
Match_Date
Match_Time
Match_HomeTeam (fk to team)
Match_AwayTeam (fk to team)
Match_FirstHalfHomeTeam
Match_FirstHalfAwayTeam
Match_SecondHalfAwayTeam
....
  1. 保持table得分:

优点:

  • 归一化
  • 灵活
  • 可扩展

缺点:

  • 选择有点复杂,因为您需要加入 3 tables。

样本tables:

TblMatch
--------
Match_Id (pk)
Match_Date
Match_Time
Match_HomeTeam (fk to teams)
Match_AwayTeam (fk to teams)

TblScoreType
------------
ScoreType_Id (pk)
ScoreType_Name (unique)

TblMatchScore
-------------
MatchScore_Id (fk to match)
MatchScore_ScoreType (fk to score type)
MatchScore_Team (fk to team)

我可能会选择第二个选项。

至于投注,有投注类型 table 和实际投注 table:

TblBetType
----------
BetType_Id (pk)
BetType_Name (unique)
-- other relevant columns

TblMatchBet
------
MatchBet_Id (pk)
Bet_BetType (fk to bet type)
Bet_Match (fk to match)
Bet_Odds

TblBet
------
Bet_Id (pk)
Bet_MatchBet_Id (fk to match bet)
Bet_Amount
Bet_User (fk to users)
-- other relevant columns such as date and time and stuff like that)