目前,我正在为下一个2018年世界杯俄罗斯国际足联投注系统工作。
对于这个系统,我有一些严格的要点(约束):
正如您在下面的图片中所看到的,这就是我尝试过的(不是一个完整的版本,我被困在这里):

存储extra bets的最佳方法是什么(就像前面说的那样,还有额外的赌注,比如这个杯子的赢家,每个小组的赢家,以及在比赛进行点球时的胜利者)?
发布于 2018-02-14 17:02:11
我建议您按以下方式处理这些赌注:
首先,确定每种类型的赌注都需要哪些数据。然后,看看什么是常见的所有赌注,什么只适用于一些。在可能的情况下,看看一些看起来不同的东西是否可以变成普通的东西。最后,看看连接到其他表的位置,并找出如何最有效地实现这一点。
例如(我可能有些错了;不知道世界杯比赛是如何配合的):
所有投注将涉及:
有些投注涉及:
因此,我会尝试构建一个bet表,它将允许任何类型的投注。如果分数与某些赌注无关,那就忽略它。将“惩罚”投注视为与常规投注分开(假设“惩罚”投注是独立于常规投注得分的;如果有一分,则必须将其保持在一起)。
因为每一次打赌最终都是由一场比赛决定的(同样,假设我是正确的,并且胜利不是“三个中最好的两个”什么的),所以我会把每一次赌注都与它的用户和将决定它的具体匹配联系起来。如果“三分之二”的情况是正确的,请尝试定义一个“匹配”,使其涵盖特定的游戏或一系列游戏;或者,定义两种不同的赌注可以与之相关联的事物,一种匹配或一系列(或类似的)。如果您可以进行" match“和" series”投注,那么将它们放在单独的表中可能是有意义的(特别是如果所有系列投注都有某些与所有匹配打赌不同的选项);尽管如此,您还是希望尽可能保持表的相似,因为您可能希望从这两个表中提取一些信息。一定要尽量减少这类表的拆分;它确实会使计算复杂化,即使这样可以使整个DB设计更加整洁。
您的实际解决方案将是不同的,我相信,但这将有助于您指出您可以使用的基本原则。
https://dba.stackexchange.com/questions/197893
复制相似问题