田径排名数据库 - 表数

时间:2011-08-16 23:29:43

标签: database

我对此很新,所以你可能不得不忍受我。我正在开发一个有关于田径运动排名的网站的数据库,我很好奇有多少桌子是最有效的方法。

我目前有两张桌子,一张叫做“运动员”的桌子,里面有我所有跑步者的详细信息(可能约600人/记录),其中包含以下字段:

mid(会员ID - 主键)
名字
姓氏
性别
生日
国籍

还有第二张表'结果',它包含了所有的表演,并且有以下几个字段:

中期
eid(事件id - 主键)
EVENTDATE
eventcategory(道路,田径,田地等)
事件描述(100米,200米,400米等)
小时
分钟

距离

位置

第二张表中已有大约2000张唱片,可能会随着时间的推移翻两番,主要是因为有大约30个赛道赛事,10场赛道,10道路,越野赛道,中继站,多项赛事等,如果有600个赛道我的第一张桌子上的运动员,相当于我的第二张桌子上的大量记录。

所以我想知道的是,将多个表分隔为田径,田野,越野等会更清洁/更有效吗?

我想使用数据库根据性能对人们的结果进行排序。如果您想更好地了解我想要效仿的内容,请查看此网站http://thepowerof10.info

2 个答案:

答案 0 :(得分:1)

更改架构不会更改结果数。即使您将场地分成一个单独的桌子,每个活动的每个参与者仍然会有一个结果。

拥有单独的场地表的潜在好处是更好的正常化。跑步者可以获得许多结果,并且给定的场地在给定日期可以具有许多结果。您不必在每个结果记录中重复场地信息。

您需要关注索引。每个表都必须有一个主键。在选择时,为WHERE子句中使用的列添加其他索引。

这是一个discussion about normalization以及它对你意味着什么。

PS - 成千上万的记录不会成为问题。大型数据库大约为千兆或万亿字节。

答案 1 :(得分:0)

我的想法 -

不要将事件表分成每种类型(轨道,字段等)的单独表格。如果数据全部存在于同一个表中,您将更容易查询数据。

否则,你的两张桌子看起来很好 - 这是一个好的开始。