2011-08-16 20 views
0

我對此很新,所以你可能不得不忍受我。我正在開發一個網站的數據庫,其中包含田徑排名,我很好奇有多少桌子是實現這一目標的最有效方式。田徑排名數據庫 - 表格數量

我現在有2個表,一個名爲「運動員」表,該表對我的所有參賽者(可能約600人/記錄),其中包含以下字段的細節:

中期(會員ID - 主鍵)
姓名
姓氏
性別
生日
國籍

和一個第二表, '結果',它包含所有的T繼承人表演和具有以下字段:

中旬
EID(事件ID - 主鍵)
EVENTDATE
eventcategory(公路,軌道,場等)
eventdescription(100米,200米,400米等)
小時
分鐘

距離

位置

第二個表中它有大約2000條記錄已經和可能,這將翻兩番隨着時間的推移,這主要是因爲有大約30個徑賽項目,10場,10路,越野,繼電器,多事件等,如果有我的第一張桌子上有600名運動員,這相當於我的第二張桌子上的大量記錄。

所以我在想,是不是會更清潔/更有效的有多個表以不同的軌道,場,越野等?

我想使用的數據庫命令根據他們的表現人民的結果。如果你想更好地瞭解什麼,我試圖仿效,看看這個網站http://thepowerof10.info

回答

0

我的想法 -

不要打破你的事件表爲每種類型的單獨的表(徑賽,田等)。如果數據全部存在於同一個表中,那麼您將有更容易的時間查詢數據。

否則,你的兩個表看起來很好 - 這是一個良好的開端。

1

更改架構不會改變結果的數量。即使您將場地分成單獨的桌子,每個參賽者仍然會得到一個結果。

具有單獨的場地表會更好正常化的潛在益處。跑步者可以有很多結果,並且給定的場地在給定的日期可以有很多結果。您不必在每個結果記錄中重複場地信息。

你會想要注意索引。每個表都必須有一個主鍵。在選擇時爲您在WHERE子句中使用的列添加其他索引。

這是discussion about normalization以及它對您的意義。

PS - 成千上萬的記錄不會成爲問題。大型數據庫的數量級別爲千兆或千兆字節。

+0

所以,如果你是有場地單獨的表我想你只會有所有的場館一一表與沿着線的東西:
VID(場地ID - 主鍵)
venuename

你會在桌子上有很多其他的東西嗎?或者你會爲每個場地分開一張桌子嗎?場地的數量可能在300個範圍內,所以我認爲不是? – Mark