2016-06-11 188 views
0

首先感謝我的英語。無論如何,我設計了一個足球聯賽數據庫,我對MATCH表有疑問。 明顯的方法是爲主隊ID加上兩個字段,客隊ID爲,每個字段爲一個外鍵。但是這種方式我認爲並不是最好的方式,因爲,例如,如果我想要得到球隊的所有比賽,我必須寫一個,其中帶有兩個字段而不是一個字段。SQL:足球比賽表結構

所以我的解決辦法有兩個,我要問你什麼,你認爲:

  1. 創建多對多MATCHES_TEAMS,並保持這兩個領域客場/主隊ID或一個他們在MATCH表中。
  2. 創建兩個多對多MATCHES_HOME_TEAMSMATCHES_AWAY_TEAMS

謝謝大家,再見

+0

在過去一年中,有人在堆棧上有一個體面的答案。我會看看,或者你可以[這裏](http://stackoverflow.com/search?tab=newest&q=%5bmysql%5dhome%20team)或[這裏](http://stackoverflow.com/search?tab=newest&q= %5bmysql%5dhome%20team%20away)或類似的搜索 – Drew

+0

謝謝,但我沒有找到任何東西 – princio

+0

有接受的答案和評論主題的幾十個問題http://stackoverflow.com/q/32552455 ...你只是實際上看看通過十多個左右,而不是懶惰有關它.. http://stackoverflow.com/a/36822336 – Drew

回答

0

Hw的有關團隊一張桌子和一臺用於比賽用標誌(H或A)以外表示回家嗎?

+0

這就像我的第一個解決方案,與_manytomany_表和一個或兩個字段表示家或離開但我不知道這是否會引入太多冗餘。 – princio

+0

現在我在想,也許我們在錯誤地思考,那就是* home/away_team_id *不僅僅是一個團隊,而是更多的東西。例如,它不僅僅是一個團隊,因爲擁有*分數*字段,但是如果我們更深入地思考,分數是不必要的,因爲它可以通過記錄每個隊員在比賽中得分的表_appearance_進行計算。 – princio

+0

你幾乎肯定會推翻它。多桌多桌是一個壞主意,沒有討論這一點。兩個多對多的表只是愚蠢的。 你有沒有足夠的球隊誰打一定數量的比賽,你想要記錄主場/客場,得分作爲最低限度和計算點和目標差異也許? 就是這樣,爲什麼過度複雜 – RJJ