报告SQL性能的表结构



我不确定这是否是我想做的最好的结构。

我有2张表。

第一个名为"团队"的表,其中包含3列,团队ID,团队名称和套件颜色。该表仅包含有关团队的数据。

第二个名为"玩家名称"的表包含3列,玩家ID,玩家名称和团队ID。很快就会添加更多列。玩家表仅与玩家有关。团队ID是将两个表连接在一起的外键。一个团队只能有15个球员最大球员,因此每个团队可以有15个球员。

可以有成千上万的球队,每个球队最多有15名球员。

我有一个水平报告,我需要填写看起来像这样的东西:

Team Name | Player 1 Name | Player 2 Name | Player 3 Name....| Player Name 15

我的问题是,我为报告设置了最佳的表结构吗?我将如何牢记某个团队的数据?例如,我想要A团队及其所有球员的信息。可以有15名球员。如果我可以在从左到右的一个选择语句中显示信息,我可以轻松填写报告,但这可以在不使用多个选择的情况下进行,这可能是负面的。

提出的另一个表结构是将两个表与2个表相结合在一起。每个播放器及其属性的列也将具有列,但这看起来并不正确,因为表将是巨大的,并且可以添加更多的玩家属性。

我正在使用SQL 2008

您需要拥有两个单独的表格,一个用于团队,一个球员,因为团队属性对于多个玩家来说很常见,最好让他们分开而不是将所有玩家组合在一起,并在您的中复制,Case TeamID是团队和球员桌之间的链接。因此,在我看来,有一对一对一关系船的两张桌子是您的理想选择。

要检索特定团队的信息,您可以使用一个简单的加入和选择语句

SELECT *
FROM TEAM T
INNER JOIN Player P
on T.TeamID=P.TeamID
WHERE T.TeamID=''

最新更新