如何规范排球组(各种长度的各种套装)?

时间:2018-04-19 08:04:54

标签: sql postgresql schema database-normalization

在排球比赛中,你通常有best of five规则。这意味着最多可以播放5套。第一个直到25,最后一个直到15。分数可能如下所示:

25:23 - 23:25 - 25:16 - 11:25 - 15:10 => Team A wins against Team B 3:2
25:10 - 25:21 - 25:13                 => Team A wins against Team B 3:0

对于培训或在学校,您可能还想玩best of three,例如

25:13 - 11:25 - 15:10 => Team A wins against Team B 2:1
25:13 - 25:10         => Team A wins against Team B 2:0

你也可以说设定的长度不是25而是15,例如

15:13 - 11:15 - 15:10 => Team A wins against Team B 2:1
15:13 - 15:10         => Team A wins against Team B 2:0

所以当你开始比赛时,你选择最多的数量。设置(53)和设置长度(2515)。

您如何将其存储在规范化数据库中?目前我的架构看起来像这样。

id | name        | set_lengths
----------------------------------------
 1 | men bronze  | [25, 25, 25, 25, 15]
 2 | woman final | [15, 15, 15]

在过去的几周里,我读了很多关于规范化的内容,据我所知,使用数组并没有真正规范化。任何想法如何在不使用数组的情况下实现这一目标?

2 个答案:

答案 0 :(得分:0)

一个简单的解决方案可以基于两个表格 匹配并设置

在匹配表中,匹配名称为匹配类型(3或5组)和team1和team2的团队名称

 team
 id, name  

或者您也可以添加团队表

match  
id, name, match_type,  id_team1, id_team2 

,在这种情况下

x = features[params['input_name']]

答案 1 :(得分:0)

用于控制集类型的表:

Set_Type: set_type_id, description, min_points
ex: 1, 'Tie Break', 15

匹配表本身:

Match: match_id, name, team1, team2
ex: 10, 'Final Men', team1, team2

另一个作为集合的中间表

Match_Set: match_id, set_type_id, score_team1, score_team2, nr
ex: 10, 1, 10, 15, 5