我正在創建一個體育統計數據庫。有了它,我想編目許多類型的運動類型的比賽/比賽統計。例如,這個數據庫可以告訴你卡羅萊納豹隊在09-10賽季(足球)獲得多少達陣,或者邁阿密熱火隊在最後一場比賽(籃球)中有多少次罰球。屬性是否可以指定一個表格而不是另一個表格?
我有麻煩叫設計相匹配的更根本的一個表。比賽表有列:(PK match_id)的發揮
- ID(play_date)team_1_performance_id和team_2_performance_id)表中的表現。
性能表保存:
- ID(PK perf_id)
- 團隊ID(FK TEAM_ID)
- 而且最重要的是,所有其他屬性,如:罷工(*)每打
- 平均衝碼(*) 的號碼製成的三分球(*)
- %的
(*)的問題是,如何才能讓相關的各自的運動性能表?例如,棒球比賽有罷工,但足球和曲棍球不會(我也不會想到任何其他運動)。我不希望我的績效表有一個罷工列,但它只與部分記錄相關。
或者我?也許我的設計應該有所不同呢?你會怎麼做呢?
現在,我不知道這是可能的,但我有一個想法是,也許包括在匹配某種性能比較表ID列是指不同的性能表。因此,當我查詢比賽的表現時,它會查看特定的表格。這是這個問題的標題來自哪裏(一個屬性可以指定一個表而不是另一個?)。試想一下,「選擇team_1_performance.strikes從匹配INNER JOIN appropriate_performance_table AS team_1_performance WHERE Matches.performance_table_id =‘棒球’」我怎麼會指定appropriate_performance_table,如果這甚至可能嗎?
另一個想法是爲所有運動創建比賽表,比如Rugby_Matches或Football_Matches,然後針對這些運動制定相應的表現表,如Rugby_Perfomances或Football_Performances。這看起來像很多代表有些類似的東西的表格。
如果可以的話,儘量保持你的反應MySQL的具體。
謝謝!
EAV對程序員來說是誘人的......看起來很簡單,看起來很靈活......只有4張桌子,你可以存儲所有東西。事實上,爲什麼還有其他表呢?你所有的球員都可以進去,球隊也是。事實上,你製作的每個數據庫,從現在開始只能容納4個表格。您只需要一個實體列表,一個屬性列表,兩個屬性之間的映射以及另一個屬性來保存每個屬性的值。一個統一所有模型的模型。 –