2010-09-10 32 views

回答

1

是否有任何東西阻止您創建名爲「round_order」的字段?你知道這個命令嗎?

0

簡單地在匹配表中存儲「圓號」字段似乎就足夠了。您可能想要按相反的順序分配輪次號碼,即:1爲決賽,2爲半決賽,3爲四分之一決賽等等,而不是第一輪爲1,第2輪爲2,等等。

這具有額外的優勢,您可以立即從圓數中獲取信息。例如,對所有半決賽進行查詢將非常容易,並且將獨立於總比賽的整個賽段。

0

其實我不確定我是否同意。

如果你在「匹配」表中有一個「圓」字段,那麼你就會引入完整性問題的可能性,因爲你最終在每一輪的表中都有一行(這沒有什麼意義)是「匹配」表,所以每場比賽應該只有一行)

如果你這樣做了,每一行可能會有一組不同的參與者,這可能不是你的意圖,並表明你應該鍵「輪」到不同的表。其他完整性問題將會是「贏家領域」,例如如果你在比賽表中列出了本輪比賽的冠軍,你怎麼知道誰贏了比賽?如果你只是把比賽的勝者放在所有的行中,你就會失去有關誰贏了這一輪的信息。

要適當地標準化,創建一個「MatchRound」表。

給你匹配表的主鍵(稱之爲Match_Id例如) ,然後你的圓桌可以有: Round_Id(自動編號或類似的唯一主鍵),Match_Id(這是一個外鍵匹配表)也許RoundOrder和RoundType(最後,半等)。你可能也可以將Winner和Loser添加到這張表中。

雖然雙用於semis/quarters等的round_number字段可以工作,但它只適用於拓撲結構在整個匹配中保持一致的情況,例如,總會有四分之一決賽?例如,一些體育積分,然後只有一個決賽。出於這個原因,我只是創建RoundType文本字段。

0

支架是否會像網球(或三月瘋狂賽事)一樣播種,如果是這樣,您是否需要回答這樣的問題:「在哪一輪,費德勒和納達爾會互相比賽?然後,您需要將支架as a tree存儲在數據庫中。

+0

也許吧?這是一個非常簡單的工具,用戶可以輸入參與者姓名,將他們配對,然後一次又一次地將每場比賽的獲勝者配對,直到只剩下贏家。 – VWD 2010-09-10 20:08:03