寻找博彩 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 个有效选项:
- 直接在比赛中保留半场、全场、加时赛和点球得分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
....
- 保持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)
我正在尝试开发一个投注系统,这是我的数据库模型 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 个有效选项:
- 直接在比赛中保留半场、全场、加时赛和点球得分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
....
- 保持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)