2012-07-02 69 views
1

我在SQL初學者的模式,我有一個簡單的MySQL數據庫,其中包含兩個表:設計爲球員和比賽

  1. 玩家(ID,姓名)
  2. 錦標賽(ID,姓名,參與者)

我想保存有關每個比賽參與者的信息。我的第一個想法是participants應該包含players表中的大量id字段,但這看起來不太好。

我應該如何正確設計?

+2

大量的ID,呃? – LittleBobbyTables

回答

7

製作另一個名爲參與者的表格,其中包含兩個字段。 Player_ID和Tournament_ID。這張表可以容納儘可能多的線,以便將誰玩的時間相關聯,並且可以根據需要交叉參考。

3

從第二個表中刪除「參與者」並添加第三個表:TournamentPlayers(playerid,tournamentid)。

您應該避免在一個字段中存儲多個值。這將打破數據庫設計的第一種正常形式(1NF),其中規定只有原子值可以存儲在一個字段中。關係數據庫系統並不適合處理非標準化的數據,並且很難寫入對非1NF表的查詢。