1

我正处于使用 MySQL 和 PHP 创建数据库的早期阶段,希望得到一些建议。我已经开始整理数据,并希望开始将其输入到准备导入我的表中的 .csv 文件中。在此之前,我不确定如何正确布局结构化的列和表。

好的,我会尽力说明我要创建的内容。我有我的主页结构,您可以在其中选择按赛季或按 AZ 历史球员名单选择球员名单。一旦你从玩家列表中点击一个特定的玩家,它会在他们的玩家资料中显示如下内容: http: //stats.touch-line.com/playerdet.asp ?playerid=41472&cust=2&lang=0&FromSTR=TRUE&compid=&teamid =1&H2H=

我需要创建多少张表?

包含playerID、playerName、playerDOB、playerBirthplace、playerPosition等的玩家表。

包含teamID、teamName、teamNickname、teamGround、teamFounded等的团队表。

一个带有seasonID、playerID、teamID、playerApps、playerGoals的赛季表?

或者有没有一种更快、更有效的方法,不需要使用这么多的表来链接数据?任何建议将不胜感激。提前致谢。;)

4

1 回答 1

1

我需要创建多少张表?

简短的回答是:每个“实体”类型一个表。实体可以定义为人、地点、事物、概念或事件,可以唯一标识,对业务感兴趣,我们可以存储有关信息。

数据库设计的一个关键是数据分析(Richard Perkinson“数据分析:数据库设计的关键”,QED c.1993)

您已经确定了模型中的一些重要实体:球员、球队、赛季。可能还缺少一些其他关键实体,稍后可能会发现。

每个实体的属性都需要被识别,并且应该依赖于实体的键,而不是其他的键。(每个属性都应该依赖于键,整个键,只有键,所以帮帮我 Codd。)

您还需要识别实体之间存在的关系。一名球员可以是多个球队的成员吗?一名球员可以拥有多个位置吗?如果一名球员被交易(从一支球队转移到另一支球队),这将如何在模型中表示?

在我们遇到“多对多”关系的地方,这些关系在单独的关系表中表示。重复属性也被分解为单独的子表。

在开始将多个实体组合到同一个表中之前,确保模型正确非常重要。优化通常会导致模型损坏;它通常不会修复不起作用的模型。

当查询符合模型时,数据库旨在有效地处理大量行。有几十张表的数据库可以非常高效地运行,并且比表较少的数据库运行效率更高。

我更关心获得一个有效的数据库设计,而不是优化一个不起作用的设计。

于 2013-08-20T19:50:01.180 回答