2017-05-09 150 views
0

我正在構建一個幻想足球應用程序,我有一張儲存所有玩家的表格。我設計瞭如下所示的表格。到目前爲止,當陣型是4-4-2時,一個守門員出局,一名後衛出局,一名前鋒出局,並且對球隊進行改變就像在替補席上切換球員一樣簡單。MySQL數據庫設計

enter image description here

問題就來了,因爲我想擁有多批編隊喜歡3-5-2,5-4-1等等,我不知道如何將這種保存到數據庫中,以便當有人看到改變的球隊,他可以看到,例如當陣型是3-5-2時,兩名後衛出局。我已經使用javascript實現了前端,問題是後端。任何幫助將不勝感激,因爲我用盡了選擇。

+1

我不太確定你想要什麼,但一個好的開始可能是爲編隊製作一個單獨的表格。然後使用前端代碼限制您可以選擇哪些陣型。 – Noceo

+0

嗨,感謝您的幫助。有道理,但如果你有一個單獨的表格,你怎麼知道哪些球員在板凳上?這是我所面臨的最大挑戰,如果它是4-4-2陣型,那麼通過將GK2,DEF5,MID5和FWD3作爲替補席上的球員,可以很容易地發現它們...... – bobin56

+0

嗯,你爲什麼不做'位置'包含GK1,GK2,DEF1,DEF2等的表格,然後一張足球運動員的表格會創建一個數據透視表(多對多關係)來關聯位置和玩家表格?對於'替補'球員來說,你必須將他們置於特殊的'位置',比如Bench1,Bench2--或者你每個替補位置都與每個位置相關? –

回答

0

一個可能的解決方案,可以使用下面的表格

user 
id | team_name | current_formation_id 
1 | Masaki | 1 
2 | Other  | 3 

formation 
id | desc | defenders_count | midfielders_count | forwarders_count 
1 | 442 | 4    | 4     | 2 
1 | 433 | 4    | 3     | 3 
1 | 352 | 3    | 5     | 2 

player 
id | name | role | whatever_else 
1 | P1 | MID | ... 
2 | P2 | DEF | ... 
3 | P3 | FWD | ... 

user_roster 
user_id | player_id | is_on_field 
     1 |   1 | 1 
     1 |   2 | 0 
     1 |   3 | 1 

這種方式,你可以有改變的形成,而不改變表結構的靈活性,你可以用一個簡單的查詢哪些球員是在板凳上知道哪些在玩,你也可以很容易地檢查當前玩家是否尊重目前的陣型。

+0

嗨,非常感謝。這可能是我正在尋找的:-) – bobin56