一个小小的足球联赛的数据计划

时间:2011-08-03 17:47:18

标签: sql database-design

  • 在一年中,有两个季节:季节春季和季节秋季
  • 在一个季节,我们每个星期一晚上都会玩
  • 在每个星期一的夜晚,我们将自己分成两个5人的队伍, 通过选择红色黑色卡片随机选择。
  • 在一场比赛中,我们一直在打球,直到任何一支球队都打进了5球。
  • 在一个星期一的晚上,我们在2到4场比赛的某个地方比赛, 取决于我们得分的多少。
  • 获胜团队中的每位玩家都获得一分赢得比赛, 所以在每个星期一,玩家可以得到几分,取决于如何 他赢了很多比赛。
  • 整晚都有红og黑队的球员,所以你 如果你在场的话会得到与其他4名球员一样的积分 同一天晚上和他们一样的团队。
  • 得分板上有球员的名字和他有多少场比赛 赢得了整个赛季。

我很头疼,如何在sql数据库上创建一个包含这种数据的数据方案。

它应该包含我们在赛季中所玩的每场比赛以及比赛结果的数据阵列。

它应该与其他每个玩家正在玩的团队(红队或黑队)中的其他桌子相关联。

我是否应该有一行,这是一个星期一晚上,这一行说的是:

星期一 - 21.9.2011 - 3 - 2

可以说比赛是在星期一和日期进行的,结果是红队赢了3场比赛,黑队赢了2场比赛。


我不是要求一个完整的解决方案,只是关于我应该如何排列数据方案的一些提示。

谢谢

2 个答案:

答案 0 :(得分:2)

我会从播放器表开始(player_id,player_name等等)

我还有一个Weekly_Match_Results表(weekly_match_id,match_date,games_won) 你每周会在这里放两条记录,一条用于红色,一条用于黑色。

然后创建Player_Match_Reference表(player_match_id,player_id,weekly_match_id) 你会在每周为每位玩家写一张唱片。

然后你应该能够加入3个表来获得每个玩家的积分。

答案 1 :(得分:0)

以这种方式分解:

首先,确定实体。实体是存储在数据库中的人,地点,事物,事件等。每个实体通常都有属性。属性是有关实体的详细信息。例如,如果你有一个汽车表,你可以存储汽车的几个属性(年份,品牌,型号,颜色,里程,条件)

查看问题并列出列出的实体(例如玩家,游戏等)

下一步是考虑实体之间的关系(例如,许多玩家将属于许多团队。一个团队将玩很多游戏。)你会想要阅读很多关系以最好地实现它。

另一种方法是从一个大表中的样本数据开始。然后按照步骤规范化数据。 http://databases.about.com/od/specificproducts/a/normalization.htm